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 
52  virtual bool
53  isLocal(const Transport::ConnectionInfo& connectionInfo);
54 
63  virtual void
64  connect(const Transport::ConnectionInfo& connectionInfo,
65  ElementListener& elementListener);
66 
72  virtual void
73  send(const uint8_t *data, size_t dataLength);
74 
75  void
76  send(const std::vector<uint8_t>& data)
77  {
78  send(&data[0], data.size());
79  }
80 
90  virtual void
91  processEvents() = 0;
92 
93  virtual bool
94  getIsConnected();
95 
100  virtual void
101  close();
102 
103  virtual ~Transport();
104 };
105 
106 }
107 
108 #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-2015 Regents of the University of California.
Definition: common.hpp:35
virtual void processEvents()=0
Process any data to receive.
Definition: transport.cpp:54
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 void connect(const Transport::ConnectionInfo &connectionInfo, ElementListener &elementListener)
Connect according to the info in ConnectionInfo, and processEvents() will use elementListener.
Definition: transport.cpp:41
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