All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
transport.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
22 #ifndef NDN_TRANSPORT_HPP
23 #define NDN_TRANSPORT_HPP
24 
25 #include <vector>
26 #include "../common.hpp"
27 
28 namespace ndn {
29 
30 class ElementListener;
31 
36 class Transport {
37 public:
43  public:
44  virtual ~ConnectionInfo();
45  };
46 
47  typedef func_lib::function<void()> OnConnected;
48 
58  virtual bool
59  isLocal(const Transport::ConnectionInfo& connectionInfo);
60 
66  virtual bool
67  isAsync();
68 
79  virtual void
80  connect(const Transport::ConnectionInfo& connectionInfo,
81  ElementListener& elementListener, const OnConnected& onConnected);
82 
88  virtual void
89  send(const uint8_t *data, size_t dataLength);
90 
91  void
92  send(const std::vector<uint8_t>& data)
93  {
94  send(&data[0], data.size());
95  }
96 
106  virtual void
107  processEvents() = 0;
108 
109  virtual bool
110  getIsConnected();
111 
116  virtual void
117  close();
118 
119  virtual ~Transport();
120 };
121 
122 }
123 
124 #endif
A Transport object is used by Face to send packets and to listen for incoming packets.
Definition: transport.hpp:36
virtual void send(const uint8_t *data, size_t dataLength)
Send data to the host.
Definition: transport.cpp:54
virtual void processEvents()=0
Process any data to receive.
Definition: transport.cpp:60
virtual bool isAsync()
Check if this transport is async where connect needs to use the onConnected callback.
Definition: transport.cpp:40
virtual void connect(const Transport::ConnectionInfo &connectionInfo, ElementListener &elementListener, const OnConnected &onConnected)
Connect according to the info in ConnectionInfo, and processEvents() will use elementListener.
Definition: transport.cpp:47
An ElementListener extends an ndn_ElementListener struct to proved an abstract virtual onReceivedElem...
Definition: element-listener.hpp:33
virtual void close()
Close the connection.
Definition: transport.cpp:72
virtual bool isLocal(const Transport::ConnectionInfo &connectionInfo)
Determine whether this transport connecting according to connectionInfo is to a node on the current m...
Definition: transport.cpp:34
A Transport::ConnectionInfo is a base class for connection information used by subclasses of Transpor...
Definition: transport.hpp:42