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

protocol factory for UDP over IPv4 and IPv6 More...

#include <udp-factory.hpp>

Inheritance diagram for nfd::face::UdpFactory:
Collaboration diagram for nfd::face::UdpFactory:

Classes

class  Error
 Exception of UdpFactory. More...
 

Public Member Functions

 UdpFactory (const CtorParams &params)
 
void processConfig (OptionalConfigSection configSection, FaceSystem::ConfigContext &context) override
 process face_system.udp config section More...
 
void createFace (const CreateFaceParams &params, const FaceCreatedCallback &onCreated, const FaceCreationFailedCallback &onFailure) override
 Try to create face using the supplied parameters. More...
 
shared_ptr< UdpChannelcreateChannel (const udp::Endpoint &localEndpoint, time::nanoseconds idleTimeout)
 Create UDP-based channel using udp::Endpoint. More...
 
std::vector< shared_ptr< const Channel > > getChannels () const override
 
shared_ptr< FacecreateMulticastFace (const udp::Endpoint &localEndpoint, const udp::Endpoint &multicastEndpoint, const std::string &networkInterfaceName="")
 Create multicast UDP face using udp::Endpoint. More...
 
shared_ptr< FacecreateMulticastFace (const std::string &localIp, const std::string &multicastIp, const std::string &multicastPort, const std::string &networkInterfaceName="")
 
- Public Member Functions inherited from nfd::face::ProtocolFactory
virtual ~ProtocolFactory ()=default
 
const std::set< std::string > & getProvidedSchemes ()
 Get FaceUri schemes accepted by this ProtocolFactory. More...
 

Static Public Member Functions

static const std::string & getId ()
 
- Static Public Member Functions inherited from nfd::face::ProtocolFactory
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...
 

Additional Inherited Members

- Public Types inherited from nfd::face::ProtocolFactory
using CtorParams = ProtocolFactoryCtorParams
 
- Protected Member Functions inherited from nfd::face::ProtocolFactory
 ProtocolFactory (const CtorParams &params)
 
- Static Protected Member Functions inherited from nfd::face::ProtocolFactory
template<typename ChannelMap >
static std::vector< shared_ptr< const Channel > > getChannelsFromMap (const ChannelMap &channelMap)
 
- Protected Attributes inherited from nfd::face::ProtocolFactory
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

protocol factory for UDP over IPv4 and IPv6

UDP unicast is available over both IPv4 and IPv6. UDP multicast is available over IPv4 only.

Definition at line 40 of file udp-factory.hpp.

Constructor & Destructor Documentation

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

Definition at line 56 of file udp-factory.cpp.

References nfd::face::ProtocolFactory::netmon.

Referenced by nfd::face::UdpFactory::Error::Error().

Member Function Documentation

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

Definition at line 50 of file udp-factory.cpp.

Referenced by nfd::face::UdpFactory::Error::Error().

void nfd::face::UdpFactory::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 214 of file udp-factory.cpp.

References ndn::ip::addressFromString(), ndn::nfd::FACE_PERSISTENCY_ON_DEMAND, ndn::FaceUri::getHost(), ndn::FaceUri::getPort(), ndn::FaceUri::isCanonical(), nfd::face::ProtocolFactory::CreateFaceParams::localUri, NFD_LOG_TRACE, nfd::face::ProtocolFactory::CreateFaceParams::persistency, nfd::face::ProtocolFactory::CreateFaceParams::remoteUri, nfd::face::ProtocolFactory::CreateFaceParams::wantLocalFields, and nfd::face::ProtocolFactory::CreateFaceParams::wantLpReliability.

Referenced by nfd::face::UdpFactory::Error::Error().

shared_ptr< UdpChannel > nfd::face::UdpFactory::createChannel ( const udp::Endpoint localEndpoint,
time::nanoseconds  idleTimeout 
)

Create UDP-based channel using udp::Endpoint.

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

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

If a multicast face is already active on the same local endpoint, the creation fails and an exception is thrown.

Returns
always a valid pointer to a UdpChannel object, an exception is thrown if it cannot be created.
Exceptions
UdpFactory::Error

Definition at line 263 of file udp-factory.cpp.

Referenced by nfd::face::UdpFactory::Error::Error(), and processConfig().

std::vector< shared_ptr< const Channel > > nfd::face::UdpFactory::getChannels ( ) const
overridevirtual
shared_ptr< Face > nfd::face::UdpFactory::createMulticastFace ( const udp::Endpoint localEndpoint,
const udp::Endpoint multicastEndpoint,
const std::string &  networkInterfaceName = "" 
)

Create multicast UDP face using udp::Endpoint.

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

The face will join the specified multicast group.

If this method is called twice with the same pair of endpoints, only one face will be created. The second call will just return the existing face.

If an unicast face is already active on the same local NIC and port, the creation fails and an exception is thrown.

Parameters
localEndpointlocal endpoint
multicastEndpointmulticast endpoint
networkInterfaceNamename of the network interface on which the face will be bound (Used only on multihomed linux machine with more than one multicast UDP face for the same multicast group. If specified, will require CAP_NET_RAW capability) An empty string can be provided in other system or in linux machine with only one multicast UDP face per multicast group
Returns
always a valid pointer to a MulticastUdpFace object, an exception is thrown if it cannot be created.
Exceptions
UdpFactory::Error

Definition at line 294 of file udp-factory.cpp.

References nfd::face::connectFaceClosedSignal(), nfd::getGlobalIoService(), and websocketpp::transport::asio::socket::error::socket.

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

shared_ptr< Face > nfd::face::UdpFactory::createMulticastFace ( const std::string &  localIp,
const std::string &  multicastIp,
const std::string &  multicastPort,
const std::string &  networkInterfaceName = "" 
)

Definition at line 378 of file udp-factory.cpp.

References ndn::ip::addressFromString(), and createMulticastFace().


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