00001 #ifndef TRANSPORT_PROTOCOL_HPP_ 00002 #define TRANSPORT_PROTOCOL_HPP_ 00003 00004 #include "ariba/utility/addressing/addressing.hpp" 00005 #include "transport_listener.hpp" 00006 00007 // namespace ariba::transport 00008 namespace ariba { 00009 namespace transport { 00010 00011 using namespace ariba::addressing; 00012 00018 class transport_protocol { 00019 public: 00020 virtual void start() = 0; 00021 virtual void stop() = 0; 00022 virtual void send( const address_v* remote, const uint8_t* data, size_t size ) = 0; 00023 virtual void send( const endpoint_set& endpoints, const uint8_t* data, size_t size ) = 0; 00024 virtual void terminate( const address_v* remote ) = 0; 00025 virtual void register_listener( transport_listener* listener ) = 0; 00026 }; 00027 00028 }} // namespace ariba::transport 00029 00030 #endif /* TRANSPORT_PROTOCOL_HPP_ */