indexing description: "Specification for transport modules able to send messages" license: "MIT license (see ../../license.txt)" author: "Beat Strasser " date: "$Date$" revision: "$Revision$" deferred class P2P_MESSAGE_SENDER_TRANSPORT inherit P2P_MESSAGE_TRANSPORT feature -- Basic operations ping (address: P2P_ENDPOINT_ADDRESS): BOOLEAN is -- Does peer with given `address' respond? require Status_ok: module_status = start_ok Address_processable: address /= Void and address.protocol_name.is_equal (name) deferred end has_open_connection (address: P2P_ENDPOINT_ADDRESS): BOOLEAN is -- Does an open connection to given `address' exist? require Status_ok: module_status = start_ok Address_processable: address /= Void and address.protocol_name.is_equal (name) deferred end propagate (message: P2P_MESSAGE; service_name, service_parameter: STRING) is -- Propagate message require Status_ok: module_status = start_ok Message_valid: message /= Void Service_valid: service_name /= Void deferred end send_message (address: P2P_ENDPOINT_ADDRESS; message: P2P_MESSAGE) is -- Send message to a peer require Status_ok: module_status = start_ok Address_processable: address /= Void and address.protocol_name.is_equal (name) and address.service_name /= Void Message_valid: message /= Void deferred end end