protocol factory for Ethernet More...
#include <ethernet-factory.hpp>
Public Member Functions | |
EthernetFactory (const CtorParams ¶ms) | |
void | processConfig (OptionalConfigSection configSection, FaceSystem::ConfigContext &context) override |
process face_system.ether config section More... | |
void | createFace (const CreateFaceParams ¶ms, const FaceCreatedCallback &onCreated, const FaceCreationFailedCallback &onFailure) override |
Try to create face using the supplied parameters. More... | |
shared_ptr< EthernetChannel > | createChannel (const shared_ptr< const ndn::net::NetworkInterface > &localEndpoint, time::nanoseconds idleTimeout) |
Create Ethernet-based channel on the specified network interface. More... | |
std::vector< shared_ptr< const Channel > > | getChannels () const override |
shared_ptr< Face > | createMulticastFace (const ndn::net::NetworkInterface &localEndpoint, const ethernet::Address &group) |
Create a face to communicate on the given Ethernet multicast group. More... | |
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< ProtocolFactory > | create (const std::string &id, const CtorParams ¶ms) |
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 ¶ms) | |
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::NetworkMonitor > | netmon |
NetworkMonitor for listing available network interfaces and monitoring their changes. More... | |
protocol factory for Ethernet
Definition at line 37 of file ethernet-factory.hpp.
|
explicit |
Definition at line 45 of file ethernet-factory.cpp.
References nfd::face::ProtocolFactory::netmon.
|
static |
Definition at line 39 of file ethernet-factory.cpp.
|
overridevirtual |
process face_system.ether config section
Implements nfd::face::ProtocolFactory.
Definition at line 56 of file ethernet-factory.cpp.
References ndn::ethernet::Address::fromString(), nfd::face::FaceSystem::ConfigContext::isDryRun, ndn::nfd::LINK_TYPE_AD_HOC, ndn::nfd::LINK_TYPE_MULTI_ACCESS, NFD_LOG_INFO, NFD_LOG_WARN, and nfd::ConfigFile::parseYesNo().
|
overridevirtual |
Try to create face using the supplied parameters.
params | parameters to create face with |
onCreated | callback if face creation succeeds or face already exists; persistency and local fields settings are not updated on an existing face |
onFailure | callback if face creation fails |
Implements nfd::face::ProtocolFactory.
Definition at line 168 of file ethernet-factory.cpp.
References ndn::nfd::FACE_PERSISTENCY_ON_DEMAND, ndn::ethernet::Address::fromString(), ndn::FaceUri::getHost(), ndn::FaceUri::isCanonical(), ndn::ethernet::Address::isMulticast(), 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.
shared_ptr< EthernetChannel > nfd::face::EthernetFactory::createChannel | ( | const shared_ptr< const ndn::net::NetworkInterface > & | localEndpoint, |
time::nanoseconds | idleTimeout | ||
) |
Create Ethernet-based channel on the specified network interface.
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.
PcapHelper::Error | channel creation failed |
Definition at line 216 of file ethernet-factory.cpp.
Referenced by createMulticastFace().
|
overridevirtual |
Implements nfd::face::ProtocolFactory.
Definition at line 230 of file ethernet-factory.cpp.
References nfd::face::ProtocolFactory::getChannelsFromMap().
shared_ptr< Face > nfd::face::EthernetFactory::createMulticastFace | ( | const ndn::net::NetworkInterface & | localEndpoint, |
const ethernet::Address & | group | ||
) |
Create a face to communicate on the given Ethernet multicast group.
If this method is called twice with the same arguments, only one face will be created. The second call will just return the existing face.
localEndpoint | local network interface |
group | multicast group address |
EthernetTransport::Error | transport creation fails |
Definition at line 236 of file ethernet-factory.cpp.
References nfd::face::ProtocolFactory::addFace, nfd::face::GenericLinkService::Options::allowFragmentation, nfd::face::GenericLinkService::Options::allowReassembly, ndn::net::NetworkInterface::canMulticast(), nfd::face::connectFaceClosedSignal(), createChannel(), ndn::net::ETHERNET, websocketpp::http::status_code::found, ndn::net::NetworkInterface::getEthernetAddress(), ndn::net::NetworkInterface::getName(), ndn::net::NetworkInterface::getType(), nfd::face::INVALID_FACEID, ndn::ethernet::Address::isMulticast(), ndn::ethernet::Address::isNull(), ndn::net::NetworkInterface::isUp(), nfd::face::ProtocolFactory::netmon, NFD_LOG_DEBUG, NFD_LOG_WARN, and nfd::face::ProtocolFactory::providedSchemes.