nfd::face::TcpChannel Class Referencefinal

Class implementing a TCP-based channel to create faces. More...

#include <daemon/face/tcp-channel.hpp>

+ Inheritance diagram for nfd::face::TcpChannel:
+ Collaboration diagram for nfd::face::TcpChannel:

Public Member Functions

 TcpChannel (const tcp::Endpoint &localEndpoint, bool wantCongestionMarking, DetermineFaceScopeFromAddress determineFaceScope)
 Create a TCP channel for the specified localEndpoint. More...
 
void connect (const tcp::Endpoint &remoteEndpoint, const FaceParams &params, const FaceCreatedCallback &onFaceCreated, const FaceCreationFailedCallback &onConnectFailed, time::nanoseconds timeout=8_s)
 Create a face by establishing a TCP connection to remoteEndpoint. More...
 
size_t getDefaultMtu () const noexcept
 Returns the default MTU for all faces created by this channel. More...
 
const FaceUri & getUri () const noexcept
 
bool isListening () const final
 Returns whether the channel is listening. More...
 
void listen (const FaceCreatedCallback &onFaceCreated, const FaceCreationFailedCallback &onAcceptFailed, int backlog=boost::asio::socket_base::max_listen_connections)
 Enable listening on the local endpoint, accept connections, and create faces when remote host makes a connection. More...
 
size_t size () const final
 Returns the number of faces in the channel. More...
 

Protected Member Functions

void setDefaultMtu (size_t mtu) noexcept
 
void setUri (const FaceUri &uri) noexcept
 

Detailed Description

Class implementing a TCP-based channel to create faces.

The channel can create faces as a response to incoming TCP connections (TcpChannel::listen() needs to be called for that to work) or explicitly by using TcpChannel::connect().

Definition at line 52 of file tcp-channel.hpp.

Constructor & Destructor Documentation

◆ TcpChannel()

nfd::face::TcpChannel::TcpChannel ( const tcp::Endpoint localEndpoint,
bool  wantCongestionMarking,
DetermineFaceScopeFromAddress  determineFaceScope 
)

Create a TCP channel for the specified localEndpoint.

To enable the creation of faces upon incoming connections, one needs to explicitly call listen().

Definition at line 40 of file tcp-channel.cpp.

Member Function Documentation

◆ connect()

void nfd::face::TcpChannel::connect ( const tcp::Endpoint remoteEndpoint,
const FaceParams params,
const FaceCreatedCallback onFaceCreated,
const FaceCreationFailedCallback onConnectFailed,
time::nanoseconds  timeout = 8_s 
)

Create a face by establishing a TCP connection to remoteEndpoint.

Definition at line 74 of file tcp-channel.cpp.

◆ getDefaultMtu()

size_t nfd::face::Channel::getDefaultMtu ( ) const
inlinenoexceptinherited

Returns the default MTU for all faces created by this channel.

Definition at line 58 of file channel.hpp.

◆ getUri()

const FaceUri& nfd::face::Channel::getUri ( ) const
inlinenoexceptinherited

Definition at line 49 of file channel.hpp.

◆ isListening()

bool nfd::face::TcpChannel::isListening ( ) const
inlinefinalvirtual

Returns whether the channel is listening.

Implements nfd::face::Channel.

Definition at line 65 of file tcp-channel.hpp.

◆ listen()

void nfd::face::TcpChannel::listen ( const FaceCreatedCallback onFaceCreated,
const FaceCreationFailedCallback onAcceptFailed,
int  backlog = boost::asio::socket_base::max_listen_connections 
)

Enable listening on the local endpoint, accept connections, and create faces when remote host makes a connection.

Parameters
onFaceCreatedCallback to notify successful creation of the face
onAcceptFailedCallback to notify when channel fails (accept call returns an error)
backlogThe maximum length of the queue of pending incoming connections

Definition at line 52 of file tcp-channel.cpp.

◆ setDefaultMtu()

void nfd::face::Channel::setDefaultMtu ( size_t  mtu)
protectednoexceptinherited

Definition at line 40 of file channel.cpp.

◆ setUri()

void nfd::face::Channel::setUri ( const FaceUri &  uri)
protectednoexceptinherited

Definition at line 34 of file channel.cpp.

◆ size()

size_t nfd::face::TcpChannel::size ( ) const
inlinefinalvirtual

Returns the number of faces in the channel.

Implements nfd::face::Channel.

Definition at line 71 of file tcp-channel.hpp.