Protocol factory for UDP over IPv4 and IPv6.
More...
#include <daemon/face/udp-factory.hpp>
|
template<typename ChannelMap > |
static std::vector< shared_ptr< const Channel > > | getChannelsFromMap (const ChannelMap &channelMap) |
|
Protocol factory for UDP over IPv4 and IPv6.
Definition at line 38 of file udp-factory.hpp.
◆ CtorParams
◆ UdpFactory()
nfd::face::UdpFactory::UdpFactory |
( |
const CtorParams & |
params | ) |
|
|
explicit |
◆ create()
Create a protocol factory instance.
- Return values
-
nullptr | if a factory with the given id is not registered |
Definition at line 41 of file protocol-factory.cpp.
◆ createChannel()
shared_ptr< UdpChannel > nfd::face::UdpFactory::createChannel |
( |
const udp::Endpoint & |
localEndpoint, |
|
|
time::nanoseconds |
idleTimeout |
|
) |
| |
Create UDP-based channel using udp::Endpoint.
udp::Endpoint is 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
-
Definition at line 302 of file udp-factory.cpp.
◆ createFace()
Create a unicast face.
- Parameters
-
req | request object containing the face creation parameters |
onCreated | callback if face creation succeeds or face already exists; the settings of an existing face are not updated if they differ from the request |
onFailure | callback if face creation fails |
Definition at line 85 of file protocol-factory.cpp.
◆ createMulticastFace()
shared_ptr< Face > nfd::face::UdpFactory::createMulticastFace |
( |
const ndn::net::NetworkInterface & |
netif, |
|
|
const boost::asio::ip::address & |
localAddress, |
|
|
const udp::Endpoint & |
multicastEndpoint |
|
) |
| |
Create a multicast UDP face.
udp::Endpoint is 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 set of arguments, only one face will be created. The second call will just return the existing face.
If a UDP channel, unicast face, or multicast face already exists on the same combination of local address and multicast port, the creation fails and an exception is thrown.
- Parameters
-
netif | the network interface to which the face will be bound |
localAddress | the local IP address to which the face will be bound |
multicastEndpoint | the multicast endpoint (multicast group and port number) |
- Returns
- Always a valid shared pointer to the created face; an exception is thrown if the face cannot be created.
- Exceptions
-
std::runtime_error | Face creation failed |
Definition at line 328 of file udp-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
-
remote | remote FaceUri, must be canonical |
netdev | local network interface |
- Returns
- new face
- Exceptions
-
Error | cannot 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 |
◆ getChannelsFromMap()
template<typename ChannelMap >
static std::vector<shared_ptr<const Channel> > nfd::face::ProtocolFactory::getChannelsFromMap |
( |
const ChannelMap & |
channelMap | ) |
|
|
inlinestaticprotectedinherited |
◆ getId()
const std::string & nfd::face::UdpFactory::getId |
( |
| ) |
|
|
staticnoexcept |
◆ getProvidedSchemes()
const std::set<std::string>& nfd::face::ProtocolFactory::getProvidedSchemes |
( |
| ) |
const |
|
inlinenoexceptinherited |
◆ listRegistered()
std::set< std::string > nfd::face::ProtocolFactory::listRegistered |
( |
| ) |
|
|
staticinherited |
◆ processConfig()
Process face_system subsection that corresponds to this protocol factory id.
- Parameters
-
configSection | the configuration section or boost::none to indicate it is omitted |
context | provides access to data structures and contextual information |
- Exceptions
-
Definition at line 72 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
-
- Parameters
-
Definition at line 78 of file protocol-factory.hpp.
◆ addFace
◆ 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 261 of file protocol-factory.hpp.
◆ providedSchemes
std::set<std::string> nfd::face::ProtocolFactory::providedSchemes |
|
protectedinherited |