nfd::face::WebSocketFactory Class Reference

protocol factory for WebSocket More...

#include <websocket-factory.hpp>

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

Public Member Functions

void processConfig (OptionalConfigSection configSection, FaceSystem::ConfigContext &context) override
 process face_system.websocket config section More...
 
void createFace (const FaceUri &uri, ndn::nfd::FacePersistency persistency, bool wantLocalFieldsEnabled, const FaceCreatedCallback &onCreated, const FaceCreationFailedCallback &onFailure) override
 unicast face creation is not supported and will always fail More...
 
shared_ptr< WebSocketChannelcreateChannel (const websocket::Endpoint &localEndpoint)
 Create WebSocket-based channel using websocket::Endpoint. More...
 
shared_ptr< WebSocketChannelcreateChannel (const std::string &localIp, const std::string &localPort)
 Create WebSocket-based channel using specified IP address and port number. More...
 
std::vector< shared_ptr< const Channel > > getChannels () const override
 
const std::set< std::string > & getProvidedSchemes ()
 

Static Public Member Functions

static const std::string & getId ()
 
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)
 
static std::set< std::string > listRegistered ()
 

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...
 

Detailed Description

protocol factory for WebSocket

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

Member Function Documentation

unique_ptr< ProtocolFactory > nfd::face::ProtocolFactory::create ( const std::string &  id)
staticinherited
Returns
a protocol factory instance
Return values
nullptrif factory with id is not registered

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

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 128 of file websocket-factory.cpp.

shared_ptr< WebSocketChannel > nfd::face::WebSocketFactory::createChannel ( const std::string &  localIp,
const std::string &  localPort 
)

Create WebSocket-based channel using specified IP address and port number.

This method is just a helper that converts a string representation of localIp and port to websocket::Endpoint and calls the other createChannel overload.

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

void nfd::face::WebSocketFactory::createFace ( const FaceUri &  uri,
ndn::nfd::FacePersistency  persistency,
bool  wantLocalFieldsEnabled,
const FaceCreatedCallback onCreated,
const FaceCreationFailedCallback onFailure 
)
overridevirtual

unicast face creation is not supported and will always fail

Implements nfd::face::ProtocolFactory.

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

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

Implements nfd::face::ProtocolFactory.

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

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

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

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

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

const std::set<std::string>& nfd::face::ProtocolFactory::getProvidedSchemes ( )
inlineinherited
Returns
FaceUri schemes accepted by this ProtocolFactory

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

std::set< std::string > nfd::face::ProtocolFactory::listRegistered ( )
staticinherited
Returns
registered protocol factory ids

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

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

process face_system.websocket config section

Reimplemented from nfd::face::ProtocolFactory.

Definition at line 46 of file websocket-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 54 of file protocol-factory.hpp.

Member Data Documentation

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

FaceUri schemes provided by this ProtocolFactory.

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