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 
32 class Transport {
33 public:
39  public:
40  virtual ~ConnectionInfo();
41  };
42 
43  typedef func_lib::function<void()> OnConnected;
44 
54  virtual bool
55  isLocal(const Transport::ConnectionInfo& connectionInfo);
56 
67  virtual void
68  connect(const Transport::ConnectionInfo& connectionInfo,
69  ElementListener& elementListener, const OnConnected& onConnected);
70 
76  virtual void
77  send(const uint8_t *data, size_t dataLength);
78 
79  void
80  send(const std::vector<uint8_t>& data)
81  {
82  send(&data[0], data.size());
83  }
84 
94  virtual void
95  processEvents() = 0;
96 
97  virtual bool
98  getIsConnected();
99 
104  virtual void
105  close();
106 
107  virtual ~Transport();
108 };
109 
110 }
111 
112 #endif
Definition: transport.hpp:32
virtual void send(const uint8_t *data, size_t dataLength)
Set data to the host.
Definition: transport.cpp:48
Copyright (C) 2013-2016 Regents of the University of California.
Definition: common.hpp:35
virtual void processEvents()=0
Process any data to receive.
Definition: transport.cpp:54
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:41
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:66
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:38