NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
nfd::face::ProtocolFactory Class Referenceabstract

Provides support for an underlying protocol. More...

#include <protocol-factory.hpp>

Inheritance diagram for nfd::face::ProtocolFactory:
Collaboration diagram for nfd::face::ProtocolFactory:

Classes

struct  CreateFaceParams
 Parameters to ProtocolFactory::createFace. More...
 
class  Error
 Base class for all exceptions thrown by ProtocolFactory subclasses. More...
 

Public Types

using CtorParams = ProtocolFactoryCtorParams
 

Public Member Functions

virtual ~ProtocolFactory ()=default
 
virtual void processConfig (OptionalConfigSection configSection, FaceSystem::ConfigContext &context)=0
 Process face_system subsection that corresponds to this ProtocolFactory type. More...
 
const std::set< std::string > & getProvidedSchemes ()
 Get FaceUri schemes accepted by this ProtocolFactory. More...
 
virtual void createFace (const CreateFaceParams &params, const FaceCreatedCallback &onCreated, const FaceCreationFailedCallback &onFailure)=0
 Try to create face using the supplied parameters. More...
 
virtual std::vector< shared_ptr< const Channel > > getChannels () const =0
 

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< ProtocolFactorycreate (const std::string &id, const CtorParams &params)
 Create a protocol factory instance. More...
 
static std::set< std::string > listRegistered ()
 Get registered protocol factory ids. More...
 
static const std::string & getId ()
 Get id for this ProtocolFactory. More...
 

Protected Member Functions

 ProtocolFactory (const CtorParams &params)
 

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 ProtocolFactory. More...
 
FaceCreatedCallback addFace
 callback when a new face is created More...
 
shared_ptr< ndn::net::NetworkMonitornetmon
 NetworkMonitor for listing available network interfaces and monitoring their changes. More...
 

Detailed Description

Provides support for an underlying protocol.

See also
FaceSystem

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.

Member Typedef Documentation

Constructor & Destructor Documentation

virtual nfd::face::ProtocolFactory::~ProtocolFactory ( )
virtualdefault
nfd::face::ProtocolFactory::ProtocolFactory ( const CtorParams params)
explicitprotected

Definition at line 61 of file protocol-factory.cpp.

References addFace, and netmon.

Member Function Documentation

template<typename PF >
static void nfd::face::ProtocolFactory::registerType ( const std::string &  id = PF::getId())
inlinestatic

Register a protocol factory type.

Template Parameters
Ssubclass of ProtocolFactory
Parameters
idfactory identifier

Definition at line 70 of file protocol-factory.hpp.

unique_ptr< ProtocolFactory > nfd::face::ProtocolFactory::create ( const std::string &  id,
const CtorParams params 
)
static

Create a protocol factory instance.

Return values
nullptrif factory with id is not registered

Definition at line 41 of file protocol-factory.cpp.

References websocketpp::http::status_code::found.

Referenced by nfd::face::FaceSystem::FaceSystem().

std::set< std::string > nfd::face::ProtocolFactory::listRegistered ( )
static

Get registered protocol factory ids.

Definition at line 53 of file protocol-factory.cpp.

Referenced by nfd::face::FaceSystem::FaceSystem().

static const std::string& nfd::face::ProtocolFactory::getId ( )
static

Get id for this ProtocolFactory.

face_system.factory-id config section is processed by the protocol factory.

virtual void nfd::face::ProtocolFactory::processConfig ( OptionalConfigSection  configSection,
FaceSystem::ConfigContext context 
)
pure virtual

Process face_system subsection that corresponds to this ProtocolFactory type.

Parameters
configSectionthe configuration section or boost::null to indicate it is omitted
contextprovides access to data structures and contextual information
Exceptions
ConfigFile::Errorinvalid configuration

This function updates providedSchemes

Implemented in nfd::face::UdpFactory, nfd::face::EthernetFactory, nfd::face::TcpFactory, nfd::face::UnixStreamFactory, and nfd::face::WebSocketFactory.

Referenced by nfd::face::FaceSystem::setConfigFile().

const std::set<std::string>& nfd::face::ProtocolFactory::getProvidedSchemes ( )
inline

Get FaceUri schemes accepted by this ProtocolFactory.

Definition at line 127 of file protocol-factory.hpp.

Referenced by nfd::face::FaceSystem::setConfigFile().

virtual void nfd::face::ProtocolFactory::createFace ( const CreateFaceParams params,
const FaceCreatedCallback onCreated,
const FaceCreationFailedCallback onFailure 
)
pure virtual

Try to create face using the supplied parameters.

Parameters
paramsparameters to create face with
onCreatedcallback if face creation succeeds or face already exists; persistency and local fields settings are not updated on an existing face
onFailurecallback if face creation fails

Implemented in nfd::face::UdpFactory, nfd::face::WebSocketFactory, nfd::face::EthernetFactory, nfd::face::TcpFactory, and nfd::face::UnixStreamFactory.

Referenced by nfd::FaceManager::setConfigFile().

virtual std::vector<shared_ptr<const Channel> > nfd::face::ProtocolFactory::getChannels ( ) const
pure virtual
template<typename ChannelMap >
static std::vector<shared_ptr<const Channel> > nfd::face::ProtocolFactory::getChannelsFromMap ( const ChannelMap &  channelMap)
inlinestaticprotected

Member Data Documentation

std::set<std::string> nfd::face::ProtocolFactory::providedSchemes
protected
shared_ptr<ndn::net::NetworkMonitor> nfd::face::ProtocolFactory::netmon
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 191 of file protocol-factory.hpp.

Referenced by nfd::face::EthernetFactory::createMulticastFace(), nfd::face::EthernetFactory::EthernetFactory(), nfd::face::getV4Address(), ProtocolFactory(), and nfd::face::UdpFactory::UdpFactory().


The documentation for this class was generated from the following files: