All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ndn::UnixTransport Class Reference

#include <unix-transport.hpp>

Inheritance diagram for ndn::UnixTransport:
[legend]
Collaboration diagram for ndn::UnixTransport:
[legend]

Public Types

typedef ptr_lib::function
< void(const Block &wire)> 
ReceiveCallback
 
typedef ptr_lib::function< void()> ErrorCallback
 

Public Member Functions

 UnixTransport (const std::string &unixSocket)
 Create Unix transport based on the socket specified in a well-known configuration file or fallback to /var/run/nfd.sock. More...
 
 ~UnixTransport ()
 
virtual void connect (boost::asio::io_service &ioService, const ReceiveCallback &receiveCallback)
 Connect transport. More...
 
virtual void close ()
 Close the connection. More...
 
virtual void pause ()
 
virtual void resume ()
 
virtual void send (const Block &wire)
 Set data to the host. More...
 
virtual void send (const Block &header, const Block &payload)
 Alternative version of sending data, applying scatter/gather I/O concept. More...
 
bool isConnected ()
 
bool isExpectingData ()
 

Static Public Member Functions

static std::string getDefaultSocketName (const ConfigFile &config)
 Determine the default NFD unix socket. More...
 

Protected Member Functions

void receive (const Block &wire)
 

Protected Attributes

boost::asio::io_service * m_ioService
 
bool m_isConnected
 
bool m_isExpectingData
 
ReceiveCallback m_receiveCallback
 

Friends

class StreamTransportImpl< UnixTransport, boost::asio::local::stream_protocol >
 

Detailed Description

Definition at line 23 of file unix-transport.hpp.

Member Typedef Documentation

typedef ptr_lib::function<void ()> ndn::Transport::ErrorCallback
inherited

Definition at line 26 of file transport.hpp.

typedef ptr_lib::function<void (const Block& wire)> ndn::Transport::ReceiveCallback
inherited

Definition at line 25 of file transport.hpp.

Constructor & Destructor Documentation

ndn::UnixTransport::UnixTransport ( const std::string &  unixSocket)

Create Unix transport based on the socket specified in a well-known configuration file or fallback to /var/run/nfd.sock.

Exceptions
ThrowsUnixTransport::Error on failure to parse a discovered configuration file

Definition at line 16 of file unix-transport.cpp.

ndn::UnixTransport::~UnixTransport ( )

Definition at line 21 of file unix-transport.cpp.

Member Function Documentation

void ndn::UnixTransport::close ( )
virtual

Close the connection.

Implements ndn::Transport.

Definition at line 94 of file unix-transport.cpp.

void ndn::UnixTransport::connect ( boost::asio::io_service &  io_service,
const ReceiveCallback receiveCallback 
)
virtual

Connect transport.

Exceptions
Ifconnection cannot be established

Reimplemented from ndn::Transport.

Definition at line 68 of file unix-transport.cpp.

std::string ndn::UnixTransport::getDefaultSocketName ( const ConfigFile config)
static

Determine the default NFD unix socket.

Returns
unix_socket value if present in config, else /var/run/nfd.sock
Exceptions
ConfigFile::Errorif fail to parse value of a present "unix_socket" field

Definition at line 26 of file unix-transport.cpp.

bool ndn::Transport::isConnected ( )
inlineinherited

Definition at line 124 of file transport.hpp.

bool ndn::Transport::isExpectingData ( )
inlineinherited

Definition at line 130 of file transport.hpp.

void ndn::UnixTransport::pause ( )
virtual

Implements ndn::Transport.

Definition at line 100 of file unix-transport.cpp.

void ndn::Transport::receive ( const Block wire)
inlineprotectedinherited

Definition at line 136 of file transport.hpp.

void ndn::UnixTransport::resume ( )
virtual

Implements ndn::Transport.

Definition at line 106 of file unix-transport.cpp.

void ndn::UnixTransport::send ( const Block wire)
virtual

Set data to the host.

Parameters
dataA pointer to the buffer of data to send.
dataLengthThe number of bytes in data.

Implements ndn::Transport.

Definition at line 82 of file unix-transport.cpp.

void ndn::UnixTransport::send ( const Block header,
const Block payload 
)
virtual

Alternative version of sending data, applying scatter/gather I/O concept.

Two non-consecutive memory blocks will be send out together, e.g., as part of the same message in datagram-oriented transports.

Implements ndn::Transport.

Definition at line 88 of file unix-transport.cpp.

Friends And Related Function Documentation

friend class StreamTransportImpl< UnixTransport, boost::asio::local::stream_protocol >
friend

Definition at line 70 of file unix-transport.hpp.

Field Documentation

boost::asio::io_service* ndn::Transport::m_ioService
protectedinherited

Definition at line 84 of file transport.hpp.

bool ndn::Transport::m_isConnected
protectedinherited

Definition at line 85 of file transport.hpp.

bool ndn::Transport::m_isExpectingData
protectedinherited

Definition at line 86 of file transport.hpp.

ReceiveCallback ndn::Transport::m_receiveCallback
protectedinherited

Definition at line 87 of file transport.hpp.