Provides support for an underlying protocol. More...
#include <daemon/face/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 |
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... | |
const std::set< std::string > & | getProvidedSchemes () const noexcept |
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... | |
Static Public Member Functions | |
static unique_ptr< ProtocolFactory > | create (const std::string &id, const CtorParams ¶ms) |
Create a protocol factory instance. More... | |
static const std::string & | getId () noexcept |
Get the ID of this protocol factory. More... | |
static std::set< std::string > | listRegistered () |
Get all registered protocol factory IDs. More... | |
template<typename PF > | |
static void | registerType (const std::string &id=PF::getId()) |
Register a protocol factory type. More... | |
Static Protected Member Functions | |
template<typename ChannelMap > | |
static std::vector< shared_ptr< const Channel > > | getChannelsFromMap (const ChannelMap &channelMap) |
Protected Attributes | |
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... | |
std::set< std::string > | providedSchemes |
FaceUri schemes provided by this protocol factory. 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 the face_system
configuration section and create channels and multicast faces accordingly.
Definition at line 66 of file protocol-factory.hpp.
Definition at line 69 of file protocol-factory.hpp.
|
explicit |
Definition at line 61 of file protocol-factory.cpp.
|
pure virtualdefault |
|
static |
Create a protocol factory instance.
nullptr | if a factory with the given id is not registered |
Definition at line 41 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 85 of file protocol-factory.cpp.
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 105 of file protocol-factory.cpp.
std::vector< shared_ptr< const Channel > > nfd::face::ProtocolFactory::getChannels | ( | ) | const |
Get list of open channels (listening + non-listening)
Definition at line 120 of file protocol-factory.cpp.
|
inlinestaticprotected |
Definition at line 186 of file protocol-factory.hpp.
|
staticnoexcept |
Get the ID of this protocol factory.
face_system.<factory-id>
config section is processed by the protocol factory.
|
inlinenoexcept |
Get FaceUri schemes accepted by this protocol factory.
Definition at line 130 of file protocol-factory.hpp.
|
static |
Get all registered protocol factory IDs.
Definition at line 53 of file protocol-factory.cpp.
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 72 of file protocol-factory.cpp.
|
inlinestatic |
Register a protocol factory type.
PF | subclass of ProtocolFactory |
id | factory identifier |
Definition at line 78 of file protocol-factory.hpp.
|
protected |
callback when a new face is created
Definition at line 254 of file protocol-factory.hpp.
|
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 261 of file protocol-factory.hpp.
|
protected |
FaceUri schemes provided by this protocol factory.
Definition at line 253 of file protocol-factory.hpp.