nfd::face::WebSocketFactory Class Referencefinal

Protocol factory for WebSocket. More...

#include <daemon/face/websocket-factory.hpp>

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

Public Types

using CtorParams = ProtocolFactoryCtorParams
 

Public Member Functions

shared_ptr< WebSocketChannelcreateChannel (const websocket::Endpoint &localEndpoint)
 Create WebSocket-based channel using websocket::Endpoint. More...
 
void createFace (const CreateFaceRequest &req, const FaceCreatedCallback &onCreated, const FaceCreationFailedCallback &onFailure)
 Create a unicast face. More...
 
shared_ptr< FacecreateNetdevBoundFace (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...
 
 ProtocolFactory (const CtorParams &params)
 

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 () noexcept
 
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...
 

Detailed Description

Protocol factory for WebSocket.

Definition at line 36 of file websocket-factory.hpp.

Member Typedef Documentation

◆ CtorParams

Member Function Documentation

◆ create()

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

Create a protocol factory instance.

Return values
nullptrif a factory with the given id is not registered

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

◆ createChannel()

shared_ptr< WebSocketChannel > nfd::face::WebSocketFactory::createChannel ( const websocket::Endpoint localEndpoint)

Create WebSocket-based channel using websocket::Endpoint.

websocket::Endpoint is really an alias for boost::asio::ip::tcp::endpoint.

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

Returns
always a valid pointer to a WebSocketChannel object, an exception is thrown if it cannot be created.

Definition at line 117 of file websocket-factory.cpp.

◆ createFace()

void nfd::face::ProtocolFactory::createFace ( const CreateFaceRequest req,
const FaceCreatedCallback onCreated,
const FaceCreationFailedCallback onFailure 
)
inherited

Create a unicast face.

Parameters
reqrequest object containing the face creation parameters
onCreatedcallback if face creation succeeds or face already exists; the settings of an existing face are not updated if they differ from the request
onFailurecallback if face creation fails

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

◆ createNetdevBoundFace()

shared_ptr< Face > nfd::face::ProtocolFactory::createNetdevBoundFace ( const FaceUri &  remote,
const shared_ptr< const ndn::net::NetworkInterface > &  netdev 
)
inherited

Create a netdev-bound face.

Parameters
remoteremote FaceUri, must be canonical
netdevlocal network interface
Returns
new face
Exceptions
Errorcannot create a face using specified arguments
Note
The caller must ensure there is no existing netdev-bound face with same remote FaceUri on the same local network interface.

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

◆ getChannels()

std::vector< shared_ptr< const Channel > > nfd::face::ProtocolFactory::getChannels ( ) const
inherited

Get list of open channels (listening + non-listening)

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

◆ getChannelsFromMap()

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

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

◆ getId()

const std::string & nfd::face::WebSocketFactory::getId ( )
staticnoexcept

Definition at line 36 of file websocket-factory.cpp.

◆ getProvidedSchemes()

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

Get FaceUri schemes accepted by this protocol factory.

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

◆ listRegistered()

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

Get all registered protocol factory IDs.

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

◆ processConfig()

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

Process face_system subsection that corresponds to this protocol factory id.

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

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

◆ ProtocolFactory()

nfd::face::ProtocolFactory::ProtocolFactory
explicit

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

◆ registerType()

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

Register a protocol factory type.

Template Parameters
PFsubclass of ProtocolFactory
Parameters
idfactory identifier

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

Member Data Documentation

◆ addFace

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

callback when a new face is created

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

◆ netmon

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 257 of file protocol-factory.hpp.

◆ providedSchemes

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

FaceUri schemes provided by this protocol factory.

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