NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::FaceUri Class Reference

represents the underlying protocol and address used by a Face More...

#include <face-uri.hpp>

Classes

class  Error
 

Public Types

typedef function< void(const FaceUri &)> CanonizeSuccessCallback
 
typedef function< void(const std::string &reason)> CanonizeFailureCallback
 

Public Member Functions

 FaceUri ()
 
 FaceUri (const std::string &uri)
 construct by parsing More...
 
 FaceUri (const char *uri)
 
NDN_CXX_NODISCARD bool parse (const std::string &uri)
 exception-safe parsing More...
 
 FaceUri (const boost::asio::ip::udp::endpoint &endpoint)
 construct udp4 or udp6 canonical FaceUri More...
 
 FaceUri (const boost::asio::ip::tcp::endpoint &endpoint)
 construct tcp4 or tcp6 canonical FaceUri More...
 
 FaceUri (const boost::asio::ip::tcp::endpoint &endpoint, const std::string &scheme)
 construct tcp canonical FaceUri with custom scheme More...
 
 FaceUri (const ethernet::Address &address)
 construct ether canonical FaceUri More...
 
const std::string & getScheme () const
 get scheme (protocol) More...
 
const std::string & getHost () const
 get host (domain) More...
 
const std::string & getPort () const
 get port More...
 
const std::string & getPath () const
 get path More...
 
std::string toString () const
 write as a string More...
 
bool isCanonical () const
 determine whether this FaceUri is in canonical form More...
 
void canonize (const CanonizeSuccessCallback &onSuccess, const CanonizeFailureCallback &onFailure, time::nanoseconds timeout) const
 asynchronously convert this FaceUri to canonical form More...
 

Static Public Member Functions

static FaceUri fromFd (int fd)
 create fd FaceUri from file descriptor More...
 
static FaceUri fromDev (const std::string &ifname)
 create dev FaceUri from network device name More...
 
static FaceUri fromUdpDev (const boost::asio::ip::udp::endpoint &endpoint, const std::string &ifname)
 create udp4 or udp6 NIC-associated FaceUri from endpoint and network device name More...
 
static bool canCanonize (const std::string &scheme)
 

Friends

bool operator== (const FaceUri &lhs, const FaceUri &rhs)
 
bool operator!= (const FaceUri &lhs, const FaceUri &rhs)
 
std::ostream & operator<< (std::ostream &os, const FaceUri &uri)
 

Detailed Description

represents the underlying protocol and address used by a Face

See also
https://redmine.named-data.net/projects/nfd/wiki/FaceMgmt#FaceUri

Definition at line 44 of file face-uri.hpp.

Member Typedef Documentation

◆ CanonizeSuccessCallback

typedef function<void(const FaceUri&)> ndn::FaceUri::CanonizeSuccessCallback

Definition at line 153 of file face-uri.hpp.

◆ CanonizeFailureCallback

typedef function<void(const std::string& reason)> ndn::FaceUri::CanonizeFailureCallback

Definition at line 154 of file face-uri.hpp.

Constructor & Destructor Documentation

◆ FaceUri() [1/7]

ndn::FaceUri::FaceUri ( )

Definition at line 46 of file face-uri.cpp.

Referenced by FaceUri().

◆ FaceUri() [2/7]

ndn::FaceUri::FaceUri ( const std::string &  uri)
explicit

construct by parsing

Parameters
urischeme://host[:port]/path
Exceptions
FaceUri::Errorif URI cannot be parsed

Definition at line 51 of file face-uri.cpp.

References NDN_THROW, and parse().

◆ FaceUri() [3/7]

ndn::FaceUri::FaceUri ( const char *  uri)
explicit

Definition at line 58 of file face-uri.cpp.

◆ FaceUri() [4/7]

ndn::FaceUri::FaceUri ( const boost::asio::ip::udp::endpoint &  endpoint)
explicit

construct udp4 or udp6 canonical FaceUri

Definition at line 120 of file face-uri.cpp.

References ndn::to_string().

◆ FaceUri() [5/7]

ndn::FaceUri::FaceUri ( const boost::asio::ip::tcp::endpoint &  endpoint)
explicit

construct tcp4 or tcp6 canonical FaceUri

Definition at line 128 of file face-uri.cpp.

References ndn::to_string().

◆ FaceUri() [6/7]

ndn::FaceUri::FaceUri ( const boost::asio::ip::tcp::endpoint &  endpoint,
const std::string &  scheme 
)

construct tcp canonical FaceUri with custom scheme

Definition at line 136 of file face-uri.cpp.

References FaceUri(), and ndn::to_string().

◆ FaceUri() [7/7]

ndn::FaceUri::FaceUri ( const ethernet::Address address)
explicit

construct ether canonical FaceUri

Definition at line 162 of file face-uri.cpp.

Member Function Documentation

◆ parse()

bool ndn::FaceUri::parse ( const std::string &  uri)

exception-safe parsing

Definition at line 64 of file face-uri.cpp.

Referenced by nfd::FaceManager::FaceManager(), and FaceUri().

◆ fromFd()

FaceUri ndn::FaceUri::fromFd ( int  fd)
static

create fd FaceUri from file descriptor

Definition at line 154 of file face-uri.cpp.

References ndn::to_string().

Referenced by nfd::face::UnixStreamTransport::UnixStreamTransport().

◆ fromDev()

◆ fromUdpDev()

FaceUri ndn::FaceUri::fromUdpDev ( const boost::asio::ip::udp::endpoint &  endpoint,
const std::string &  ifname 
)
static

create udp4 or udp6 NIC-associated FaceUri from endpoint and network device name

Definition at line 179 of file face-uri.cpp.

References ndn::to_string().

◆ getScheme()

const std::string& ndn::FaceUri::getScheme ( ) const
inline

◆ getHost()

◆ getPort()

◆ getPath()

const std::string& ndn::FaceUri::getPath ( ) const
inline

◆ toString()

std::string ndn::FaceUri::toString ( ) const

◆ canCanonize()

bool ndn::FaceUri::canCanonize ( const std::string &  scheme)
static
Returns
whether a FaceUri of the scheme can be canonized

Definition at line 615 of file face-uri.cpp.

References ndn::getCanonizeProvider().

Referenced by nfd::face::ProtocolFactory::createFace(), and getPath().

◆ isCanonical()

bool ndn::FaceUri::isCanonical ( ) const

determine whether this FaceUri is in canonical form

Returns
true if this FaceUri is in canonical form, false if this FaceUri is not in canonical form or or it's undetermined whether this FaceUri is in canonical form

Definition at line 621 of file face-uri.cpp.

References ndn::getCanonizeProvider(), getScheme(), and ndn::CanonizeProvider::isCanonical().

Referenced by ndn::DevCanonizeProvider::canonize(), ndn::UdpDevCanonizeProvider::canonize(), nfd::face::ProtocolFactory::createFace(), nfd::face::ProtocolFactory::createNetdevBoundFace(), nfd::FaceManager::FaceManager(), and getPath().

◆ canonize()

void ndn::FaceUri::canonize ( const CanonizeSuccessCallback onSuccess,
const CanonizeFailureCallback onFailure,
time::nanoseconds  timeout 
) const

asynchronously convert this FaceUri to canonical form

Parameters
onSuccessfunction to call after this FaceUri is converted to canonical form
Note
A new FaceUri in canonical form will be created; this FaceUri is unchanged.
Parameters
onFailurefunction to call if this FaceUri cannot be converted to canonical form
timeoutmaximum allowable duration of the operations. It's intentional not to provide a default value: the caller should set a reasonable value in balance between network delay and user experience.

Definition at line 632 of file face-uri.cpp.

References ndn::CanonizeProvider::canonize(), ndn::getCanonizeProvider(), getScheme(), and websocketpp::transport::error::timeout.

Friends And Related Function Documentation

◆ operator==

bool operator== ( const FaceUri lhs,
const FaceUri rhs 
)
friend

Definition at line 174 of file face-uri.hpp.

◆ operator!=

bool operator!= ( const FaceUri lhs,
const FaceUri rhs 
)
friend

Definition at line 180 of file face-uri.hpp.

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const FaceUri uri 
)
friend

Definition at line 197 of file face-uri.cpp.


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