An Overlay-based
Virtual Network Substrate
SpoVNet

source: source/ariba/utility/transport/transport_peer.hpp @ 10700

Last change on this file since 10700 was 10700, checked in by s_taenzer@…, 6 years ago

Merge CMake branch into trunk

File size: 1.5 KB
Line 
1#ifndef TRANSPORT_PEER_HPP_
2#define TRANSPORT_PEER_HPP_
3
4#include "ariba/config.h"
5#include "ariba/utility/logging/Logging.h"
6#include "transport_protocol.hpp"
7#include "ariba/utility/addressing/endpoint_set.hpp"
8#include <boost/shared_ptr.hpp>
9#include "rfcomm/bluetooth_rfcomm.hpp"
10
11
12// namespace ariba::transport
13namespace ariba {
14namespace transport {
15
16using namespace ariba::addressing;
17
18class tcpip;
19
20#ifdef HAVE_LIBBLUETOOTH
21class rfcomm_transport;
22#endif
23
24/**
25 * TODO: Doc
26 *
27 * @author Sebastian Mies <mies@tm.uka.de>
28 */
29/// this transport peer allocates implementations of various transport
30/// protocols and can send messages to an entire set of endpoints
31class transport_peer : public transport_protocol {
32        use_logging_h(transport_peer);
33public:
34        transport_peer( endpoint_set& local_set );
35        virtual ~transport_peer();
36        virtual void start();
37        virtual void stop();
38       
39        virtual void send(
40                const endpoint_set& endpoints,
41                reboost::message_t message,
42                uint8_t priority = 0);
43       
44        /// @deprecated: Use terminate() from transport_connection instead
45        virtual void terminate( const address_v* remote );
46       
47        virtual void register_listener( transport_listener* listener );
48
49private:
50        void create_service(tcp::endpoint endp);
51#ifdef HAVE_LIBBLUETOOTH
52        void create_service(boost::asio::bluetooth::rfcomm::endpoint endp);
53#endif
54       
55        endpoint_set&  local;
56        std::vector< boost::shared_ptr<tcpip> > tcps;
57#ifdef HAVE_LIBBLUETOOTH
58        std::vector< boost::shared_ptr<rfcomm_transport> > rfcomms;
59#endif
60};
61
62}} // namespace ariba::transport
63
64#endif /* TRANSPORT_PEER_HPP_ */
Note: See TracBrowser for help on using the repository browser.