note description: "Mailer object used to send or retrieve resources" legal: "See notice at end of class." status: "See notice at end of class." author: "david s" date: "$Date$" revision: "$Revision$" class MAILER --inherit -- TRANSFER_ERROR create default_create feature -- Access from_resource: EMAIL_RESOURCE -- Resource that will be sent. to_resource: EMAIL_RESOURCE -- Resource that will receive. feature -- Status report transfer_error: TRANSFER_ERROR -- Has the transfer failed? error: BOOLEAN do Result:= transfer_error.transfer_error end -- transfer_error_message: STRING -- Error message. feature -- Settings set_from_resource (resource: EMAIL_RESOURCE) -- Set 'resource' to from_resource. require resource_exists: resource /= Void valid_from_resource: resource.can_be_sent or resource.can_receive do disable_transfer_error from_resource:= resource set_transfer_error end set_to_resource (resource: EMAIL_RESOURCE) -- Set 'resource' to to_resource. require resource_exists: resource /= Void valid_to_resource: resource.can_send or resource.can_be_received do disable_transfer_error to_resource:= resource set_Transfer_error end feature -- Basic operations transfer -- transfer data and check for errors. require resources_exists: from_resource /= Void and then to_resource /= Void valid_transfer: (from_resource.can_be_sent and then to_resource.can_send) or (from_resource.can_receive and then to_resource.can_be_received) do to_resource.transfer (from_resource) -- check_errors end feature {NONE} -- Implementation -- set_transfer_error is -- -- Set error. -- do -- transfer_error:= True -- end set_transfer_error do if from_resource = Void then transfer_error:= to_resource.transfer_error else transfer_error:= from_resource.transfer_error end end disable_transfer_error -- Unset error. do if transfer_error /= Void then transfer_error.disable_transfer_error end end -- set_transfer_error_message (message: STRING) is -- -- Set transfer_error_message with 'message'. -- do -- transfer_error_message:= message -- end -- check_errors is -- -- Check for errors. -- do -- if from_resource.transfer_error then -- set_transfer_error -- set_transfer_error_message (from_resource.transfer_error_message) -- end -- if to_resource.transfer_error then -- set_transfer_error -- set_transfer_error_message (to_resource.transfer_error_message) -- end -- end note copyright: "Copyright (c) 1984-2006, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 356 Storke Road, Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class MAILER