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.
References addFace, netmon, and ~ProtocolFactory().
|
pure virtualdefault |
Referenced by ProtocolFactory().
|
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.
References websocketpp::http::status_code::found.
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.
Referenced by nfd::face::FaceSystem::setConfigFile().
| 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.
Referenced by nfd::face::FaceSystem::setConfigFile().
| 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.
Referenced by nfd::FaceManager::FaceManager().
| 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(), and NDN_THROW.
| 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 |
|
protected |
FaceUri schemes provided by this protocol factory.
Definition at line 238 of file protocol-factory.hpp.
Referenced by nfd::face::EthernetFactory::createMulticastFace(), nfd::face::TcpFactory::getId(), and nfd::face::UdpFactory::UdpFactory().
|
protected |
callback when a new face is created
Definition at line 239 of file protocol-factory.hpp.
Referenced by nfd::face::EthernetFactory::createMulticastFace(), nfd::face::WebSocketFactory::getId(), nfd::face::UnixStreamFactory::getId(), nfd::face::TcpFactory::getId(), nfd::face::pickAddress(), ProtocolFactory(), and nfd::face::UdpFactory::UdpFactory().
|
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::createMulticastFace(), nfd::face::EthernetFactory::EthernetFactory(), nfd::face::pickAddress(), ProtocolFactory(), and nfd::face::UdpFactory::UdpFactory().