#ifndef TRANSPORT_PROTOCOL_HPP_ #define TRANSPORT_PROTOCOL_HPP_ #include "ariba/utility/addressing/addressing.hpp" #include "transport_listener.hpp" // namespace ariba::transport namespace ariba { namespace transport { using namespace ariba::addressing; /** * TODO: Doc * * @author Sebastian Mies */ class transport_protocol { public: virtual void start() = 0; virtual void stop() = 0; virtual void send( const address_v* remote, const uint8_t* data, size_t size ) = 0; virtual void send( const endpoint_set& endpoints, const uint8_t* data, size_t size ) = 0; virtual void terminate( const address_v* remote ) = 0; virtual void register_listener( transport_listener* listener ) = 0; }; }} // namespace ariba::transport #endif /* TRANSPORT_PROTOCOL_HPP_ */