22 #ifndef NDN_ASYNC_TCP_TRANSPORT_HPP
23 #define NDN_ASYNC_TCP_TRANSPORT_HPP
26 #include "../ndn-cpp-config.h"
27 #ifdef NDN_CPP_HAVE_BOOST_ASIO
30 #include <boost/asio.hpp>
31 #include "../common.hpp"
32 #include "../c/encoding/element-reader-types.h"
33 #include "transport.hpp"
43 class AsyncTcpTransport :
public Transport {
49 class ConnectionInfo :
public Transport::ConnectionInfo {
56 ConnectionInfo(
const char *host,
unsigned short port = 6363)
57 : host_(host), port_(port)
66 getHost()
const {
return host_; }
73 getPort()
const {
return port_; }
89 AsyncTcpTransport(boost::asio::io_service& ioService);
103 isLocal(
const Transport::ConnectionInfo& connectionInfo);
124 (
const Transport::ConnectionInfo& connectionInfo,
125 ElementListener& elementListener,
const OnConnected& onConnected);
135 send(
const uint8_t *data,
size_t dataLength);
152 virtual ~AsyncTcpTransport();
155 boost::asio::io_service& ioService_;
159 class SocketTransport;
160 ptr_lib::shared_ptr<SocketTransport> socketTransport_;
161 ConnectionInfo connectionInfo_;
167 #endif // NDN_CPP_HAVE_BOOST_ASIO