ndn::Transport Class Referenceabstract

Provides TLV-block delivery service. More...

#include <ndn-cxx/transport/transport.hpp>

+ Inheritance diagram for ndn::Transport:
+ Collaboration diagram for ndn::Transport:

Classes

class  Error
 

Public Types

using ErrorCallback = std::function< void()>
 
using ReceiveCallback = std::function< void(const Block &wire)>
 

Public Member Functions

virtual ~Transport ()=default
 
virtual void close ()=0
 Close the connection. More...
 
virtual void connect (boost::asio::io_service &ioService, ReceiveCallback receiveCallback)
 Asynchronously open the connection. More...
 
bool isConnected () const noexcept
 Return whether the transport is connected. More...
 
bool isReceiving () const noexcept
 
virtual void pause ()=0
 Pause the transport, canceling all pending operations. More...
 
virtual void resume ()=0
 Resume the transport. More...
 
virtual void send (const Block &block)=0
 Send a TLV block through the transport. More...
 

Protected Attributes

boost::asio::io_service * m_ioService = nullptr
 
bool m_isConnected = false
 
bool m_isReceiving = false
 
ReceiveCallback m_receiveCallback
 

Detailed Description

Provides TLV-block delivery service.

Definition at line 35 of file transport.hpp.

Member Typedef Documentation

◆ ErrorCallback

using ndn::Transport::ErrorCallback = std::function<void()>

Definition at line 47 of file transport.hpp.

◆ ReceiveCallback

using ndn::Transport::ReceiveCallback = std::function<void(const Block& wire)>

Definition at line 46 of file transport.hpp.

Constructor & Destructor Documentation

◆ ~Transport()

virtual ndn::Transport::~Transport ( )
virtualdefault

Member Function Documentation

◆ close()

virtual void ndn::Transport::close ( )
pure virtual

Close the connection.

Implemented in ndn::UnixTransport, and ndn::TcpTransport.

◆ connect()

void ndn::Transport::connect ( boost::asio::io_service &  ioService,
ReceiveCallback  receiveCallback 
)
virtual

Asynchronously open the connection.

Parameters
ioServiceio_service to create socket on
receiveCallbackcallback function when a TLV block is received; must not be empty
Exceptions
boost::system::system_errorconnection cannot be established

Reimplemented in ndn::UnixTransport, and ndn::TcpTransport.

Definition at line 32 of file transport.cpp.

◆ isConnected()

bool ndn::Transport::isConnected ( ) const
inlinenoexcept

Return whether the transport is connected.

Definition at line 95 of file transport.hpp.

◆ isReceiving()

bool ndn::Transport::isReceiving ( ) const
inlinenoexcept
Return values
trueincoming packets are expected, the receive callback will be invoked
falseincoming packets are not expected, the receive callback will not be invoked

Definition at line 105 of file transport.hpp.

◆ pause()

virtual void ndn::Transport::pause ( )
pure virtual

Pause the transport, canceling all pending operations.

Postcondition
the receive callback will not be invoked
Note
This operation has no effect if the transport has been paused, or when the connection is being established.

Implemented in ndn::UnixTransport, and ndn::TcpTransport.

◆ resume()

virtual void ndn::Transport::resume ( )
pure virtual

Resume the transport.

Postcondition
the receive callback will be invoked
Note
This operation has no effect if the transport is not paused, or when the connection is being established.

Implemented in ndn::UnixTransport, and ndn::TcpTransport.

◆ send()

virtual void ndn::Transport::send ( const Block block)
pure virtual

Send a TLV block through the transport.

Implemented in ndn::UnixTransport, and ndn::TcpTransport.

Member Data Documentation

◆ m_ioService

boost::asio::io_service* ndn::Transport::m_ioService = nullptr
protected

Definition at line 111 of file transport.hpp.

◆ m_isConnected

bool ndn::Transport::m_isConnected = false
protected

Definition at line 113 of file transport.hpp.

◆ m_isReceiving

bool ndn::Transport::m_isReceiving = false
protected

Definition at line 114 of file transport.hpp.

◆ m_receiveCallback

ReceiveCallback ndn::Transport::m_receiveCallback
protected

Definition at line 112 of file transport.hpp.