nfd::face::UnixStreamFactory Class Reference

protocol factory for stream-oriented Unix sockets More...

#include <daemon/face/unix-stream-factory.hpp>

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

Public Types

using CtorParams = ProtocolFactoryCtorParams
 

Public Member Functions

 UnixStreamFactory (const CtorParams &params)
 
shared_ptr< UnixStreamChannelcreateChannel (const std::string &unixSocketPath)
 Create stream-oriented Unix channel using specified socket path. More...
 
void createFace (const CreateFaceParams &params, const FaceCreatedCallback &onCreated, const FaceCreationFailedCallback &onFailure) override
 Try to create face using the supplied parameters. More...
 
std::vector< shared_ptr< const Channel > > getChannels () const override
 
const std::set< std::string > & getProvidedSchemes ()
 Get FaceUri schemes accepted by this ProtocolFactory. More...
 
void processConfig (OptionalConfigSection configSection, FaceSystem::ConfigContext &context) override
 process face_system.unix config section More...
 

Static Public Member Functions

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

Detailed Description

protocol factory for stream-oriented Unix sockets

Definition at line 37 of file unix-stream-factory.hpp.

Member Typedef Documentation

Constructor & Destructor Documentation

nfd::face::UnixStreamFactory::UnixStreamFactory ( const CtorParams params)
explicit

Definition at line 43 of file unix-stream-factory.cpp.

Member Function Documentation

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

Create a protocol factory instance.

Return values
nullptrif factory with id is not registered

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

shared_ptr< UnixStreamChannel > nfd::face::UnixStreamFactory::createChannel ( const std::string &  unixSocketPath)

Create stream-oriented Unix channel using specified socket path.

If this method is called twice with the same path, only one channel will be created. The second call will just retrieve the existing channel.

Returns
always a valid pointer to a UnixStreamChannel object, an exception will be thrown if the channel cannot be created.

Definition at line 95 of file unix-stream-factory.cpp.

void nfd::face::UnixStreamFactory::createFace ( const CreateFaceParams params,
const FaceCreatedCallback onCreated,
const FaceCreationFailedCallback onFailure 
)
overridevirtual

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

Implements nfd::face::ProtocolFactory.

Definition at line 87 of file unix-stream-factory.cpp.

std::vector< shared_ptr< const Channel > > nfd::face::UnixStreamFactory::getChannels ( ) const
overridevirtual

Implements nfd::face::ProtocolFactory.

Definition at line 111 of file unix-stream-factory.cpp.

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

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

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

Definition at line 37 of file unix-stream-factory.cpp.

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

Get FaceUri schemes accepted by this ProtocolFactory.

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

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

Get registered protocol factory ids.

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

void nfd::face::UnixStreamFactory::processConfig ( OptionalConfigSection  configSection,
FaceSystem::ConfigContext context 
)
overridevirtual

process face_system.unix config section

Implements nfd::face::ProtocolFactory.

Definition at line 49 of file unix-stream-factory.cpp.

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

Register a protocol factory type.

Template Parameters
Ssubclass of ProtocolFactory
Parameters
idfactory identifier

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

Member Data Documentation

FaceCreatedCallback nfd::face::ProtocolFactory::addFace
protectedinherited

callback when a new face is created

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

shared_ptr<ndn::net::NetworkMonitor> nfd::face::ProtocolFactory::netmon
protectedinherited

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.

std::set<std::string> nfd::face::ProtocolFactory::providedSchemes
protectedinherited

FaceUri schemes provided by this ProtocolFactory.

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