Provides support for an underlying protocol. More...
#include <protocol-factory.hpp>
Classes | |
struct | CreateFaceRequest |
Encapsulates a face creation request and all its parameters. More... | |
class | Error |
Base class for all exceptions thrown by ProtocolFactory subclasses. More... | |
Public Types | |
using | CtorParams = ProtocolFactoryCtorParams |
Public Member Functions | |
ProtocolFactory (const CtorParams ¶ms) | |
virtual | ~ProtocolFactory ()=0 |
const std::set< std::string > & | getProvidedSchemes () const |
Get FaceUri schemes accepted by this protocol factory. More... | |
void | processConfig (OptionalConfigSection configSection, FaceSystem::ConfigContext &context) |
Process face_system subsection that corresponds to this protocol factory id. More... | |
void | createFace (const CreateFaceRequest &req, const FaceCreatedCallback &onCreated, const FaceCreationFailedCallback &onFailure) |
Create a unicast face. More... | |
shared_ptr< Face > | createNetdevBoundFace (const FaceUri &remote, const shared_ptr< const ndn::net::NetworkInterface > &netdev) |
Create a netdev-bound face. More... | |
std::vector< shared_ptr< const Channel > > | getChannels () const |
Get list of open channels (listening + non-listening) More... | |
Static Public Member Functions | |
template<typename PF > | |
static void | registerType (const std::string &id=PF::getId()) |
Register a protocol factory type. More... | |
static unique_ptr< ProtocolFactory > | create (const std::string &id, const CtorParams ¶ms) |
Create a protocol factory instance. More... | |
static std::set< std::string > | listRegistered () |
Get all registered protocol factory ids. More... | |
static const std::string & | getId () noexcept |
Get id for this protocol factory. More... | |
Static Protected Member Functions | |
template<typename ChannelMap > | |
static std::vector< shared_ptr< const Channel > > | getChannelsFromMap (const ChannelMap &channelMap) |
Protected Attributes | |
std::set< std::string > | providedSchemes |
FaceUri schemes provided by this protocol factory. More... | |
FaceCreatedCallback | addFace |
callback when a new face is created More... | |
shared_ptr< ndn::net::NetworkMonitor > | netmon |
NetworkMonitor for listing available network interfaces and monitoring their changes. More... | |
Provides support for an underlying protocol.
A protocol factory provides support for an underlying protocol and owns Channel objects. It can process a subsection of face_system config section and create channels and multicast faces accordingly.
Definition at line 59 of file protocol-factory.hpp.
Definition at line 62 of file protocol-factory.hpp.
|
explicit |
Definition at line 62 of file protocol-factory.cpp.
|
pure virtualdefault |
|
inlinestatic |
Register a protocol factory type.
PF | subclass of ProtocolFactory |
id | factory identifier |
Definition at line 70 of file protocol-factory.hpp.
|
static |
Create a protocol factory instance.
nullptr | if a factory with the given id is not registered |
Definition at line 42 of file protocol-factory.cpp.
Referenced by nfd::face::FaceSystem::FaceSystem().
|
static |
Get all registered protocol factory ids.
Definition at line 54 of file protocol-factory.cpp.
Referenced by nfd::face::FaceSystem::FaceSystem().
|
staticnoexcept |
Get id for this protocol factory.
face_system.factory-id config section is processed by the protocol factory.
|
inline |
Get FaceUri schemes accepted by this protocol factory.
Definition at line 115 of file protocol-factory.hpp.
References providedSchemes.
void nfd::face::ProtocolFactory::processConfig | ( | OptionalConfigSection | configSection, |
FaceSystem::ConfigContext & | context | ||
) |
Process face_system subsection that corresponds to this protocol factory id.
configSection | the configuration section or boost::none to indicate it is omitted |
context | provides access to data structures and contextual information |
ConfigFile::Error | invalid configuration |
Definition at line 73 of file protocol-factory.cpp.
void nfd::face::ProtocolFactory::createFace | ( | const CreateFaceRequest & | req, |
const FaceCreatedCallback & | onCreated, | ||
const FaceCreationFailedCallback & | onFailure | ||
) |
Create a unicast face.
req | request object containing the face creation parameters |
onCreated | callback if face creation succeeds or face already exists; the settings of an existing face are not updated if they differ from the request |
onFailure | callback if face creation fails |
Definition at line 86 of file protocol-factory.cpp.
References ndn::FaceUri::canCanonize(), ndn::FaceUri::getScheme(), ndn::FaceUri::isCanonical(), nfd::face::ProtocolFactory::CreateFaceRequest::localUri, and nfd::face::ProtocolFactory::CreateFaceRequest::remoteUri.
shared_ptr< Face > nfd::face::ProtocolFactory::createNetdevBoundFace | ( | const FaceUri & | remote, |
const shared_ptr< const ndn::net::NetworkInterface > & | netdev | ||
) |
Create a netdev-bound face.
remote | remote FaceUri, must be canonical |
netdev | local network interface |
Error | cannot create a face using specified arguments |
Definition at line 106 of file protocol-factory.cpp.
References ndn::FaceUri::isCanonical().
std::vector< shared_ptr< const Channel > > nfd::face::ProtocolFactory::getChannels | ( | ) | const |
Get list of open channels (listening + non-listening)
Definition at line 121 of file protocol-factory.cpp.
|
inlinestaticprotected |
Definition at line 171 of file protocol-factory.hpp.
|
protected |
FaceUri schemes provided by this protocol factory.
Definition at line 238 of file protocol-factory.hpp.
Referenced by getProvidedSchemes().
|
protected |
callback when a new face is created
Definition at line 239 of file protocol-factory.hpp.
Referenced by ProtocolFactory().
|
protected |
NetworkMonitor for listing available network interfaces and monitoring their changes.
ProtocolFactory subclass should check the NetworkMonitor has sufficient capabilities prior to usage.
Definition at line 246 of file protocol-factory.hpp.
Referenced by nfd::face::EthernetFactory::EthernetFactory(), ProtocolFactory(), and nfd::face::UdpFactory::UdpFactory().