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

Copyright (c) 2011-2015 Regents of the University of California. More...

Namespaces

 command_interest
 
 detail
 
 encoding
 
 ethernet
 
 io
 
 ip
 
 literals
 
 lp
 
 mgmt
 
 name
 
 net
 
 nfd
 
 random
 
 security
 
 signed_interest
 
 time
 
 tlv
 Namespace defining NDN Packet Format related constants and procedures.
 
 util
 

Classes

class  AsHex
 Helper class to convert a number to hexadecimal format, for use with stream insertion operators. More...
 
class  bad_optional_access
 
class  Block
 Represents a TLV element of NDN packet format. More...
 
class  Buffer
 General-purpose automatically managed/resized buffer. More...
 
class  CanonizeProvider
 a CanonizeProvider provides FaceUri canonization functionality for a group of schemes More...
 
class  CanonizeProviderTableInitializer
 
class  ConfigFile
 System configuration file for NDN platform. More...
 
class  ContainerWithOnEmptySignal
 A container that emits onEmpty signal when it becomes empty. More...
 
class  Data
 Represents a Data packet. More...
 
struct  Delegation
 represents a delegation More...
 
class  DelegationList
 represents a list of Delegations More...
 
class  DevCanonizeProvider
 
class  DigestSha256
 Represents a signature of DigestSha256 type. More...
 
class  DummyIoService
 
class  EtherCanonizeProvider
 
class  Exclude
 Represents Exclude selector in NDN Interest. More...
 
class  Face
 Provide a communication channel with local or remote NDN forwarder. More...
 
class  FaceUri
 represents the underlying protocol and address used by a Face More...
 
struct  in_place_t
 
class  InMemoryStorage
 Represents in-memory storage. More...
 
class  InMemoryStorageEntry
 Represents an in-memory storage entry. More...
 
class  InMemoryStorageFifo
 Provides in-memory storage employing First-In-First-Out (FIFO) replacement policy. More...
 
class  InMemoryStorageLfu
 Provides an in-memory storage with Least Frequently Used (LFU) replacement policy. More...
 
class  InMemoryStorageLru
 Provides in-memory storage employing Least Recently Used (LRU) replacement policy. More...
 
class  InMemoryStoragePersistent
 Provides application cache with persistent storage, of which no replacement policy will be employed. More...
 
class  Interest
 Represents an Interest packet. More...
 
class  InterestFilter
 declares the set of Interests a producer can serve, which starts with a name prefix, plus an optional regular expression More...
 
class  InterestFilterRecord
 associates an InterestFilter with Interest callback More...
 
class  IpHostCanonizeProvider
 
class  KeyLocator
 
class  KeyParams
 Base class of key parameters. More...
 
class  Link
 represents a Link object More...
 
class  MatchInterestFilterId
 Functor to match InterestFilterId. More...
 
class  MatchPendingInterestId
 Functor to match PendingInterestId. More...
 
class  MatchRegisteredPrefixId
 Functor to match RegisteredPrefixId. More...
 
class  MetaInfo
 An MetaInfo holds the meta info which is signed inside the data packet. More...
 
class  Name
 Represents an absolute name. More...
 
class  NotificationStreamItem
 concept check for an item in a Notification Stream More...
 
class  nullopt_t
 
class  OBufferStream
 implements an output stream that constructs ndn::Buffer More...
 
class  optional
 
class  ostream_joiner
 
class  PacketBase
 base class to allow simple management of packet tags More...
 
class  PendingInterest
 Stores a pending Interest and associated callbacks. More...
 
class  RegexBackrefManager
 
class  RegexBackrefMatcher
 
class  RegexComponentMatcher
 
class  RegexComponentSetMatcher
 
class  RegexMatcher
 
class  RegexPatternListMatcher
 
class  RegexPseudoMatcher
 
class  RegexRepeatMatcher
 
class  RegexTopMatcher
 
class  RegisteredPrefix
 stores information about a prefix registered in NDN forwarder More...
 
class  Selectors
 Abstraction implementing Interest selectors. More...
 
class  Signature
 Holds SignatureInfo and SignatureValue in a Data packet. More...
 
class  SignatureInfo
 Represents a SignatureInfo TLV element. More...
 
class  SignatureSha256WithEcdsa
 Represents a signature of Sha256WithEcdsa type. More...
 
class  SignatureSha256WithRsa
 Represents a signature of Sha256WithRsa type. More...
 
class  SimplePublicKeyParams
 SimplePublicKeyParams is a template for public keys with only one parameter: size. More...
 
class  SimpleSymmetricKeyParams
 SimpleSymmetricKeyParams is a template for symmetric keys with only one parameter: size. More...
 
class  SimpleTag
 provides a tag type for simple types More...
 
class  StatusDatasetItem
 concept check for an item in a Status Dataset More...
 
class  StringHelperError
 
class  Tag
 Base class for packet tags that can hold any arbitrary information. More...
 
class  TagHost
 Base class to store tag information (e.g., inside Interest and Data packets) More...
 
class  TcpCanonizeProvider
 
class  Transport
 provides TLV-block delivery service More...
 
class  UdpCanonizeProvider
 
class  UdpDevCanonizeProvider
 
class  WireDecodable
 a concept check for TLV abstraction with .wireDecode method and constructible from Block More...
 
class  WireEncodable
 a concept check for TLV abstraction with .wireEncode method More...
 
class  WireEncodableWithEncodingBuffer
 a concept check for TLV abstraction with .wireEncode method More...
 

Typedefs

using BufferPtr = shared_ptr< Buffer >
 
using ConstBufferPtr = shared_ptr< const Buffer >
 
typedef function< void(const Interest &, const Data &)> DataCallback
 Callback invoked when expressed Interest gets satisfied with a Data packet. More...
 
typedef function< void(const Interest &, const lp::Nack &)> NackCallback
 Callback invoked when Nack is sent in response to expressed Interest. More...
 
typedef function< void(const Interest &)> TimeoutCallback
 Callback invoked when expressed Interest times out. More...
 
typedef function< void(const InterestFilter &, const Interest &)> InterestCallback
 Callback invoked when incoming Interest matches the specified InterestFilter. More...
 
typedef function< void(const Name &)> RegisterPrefixSuccessCallback
 Callback invoked when registerPrefix or setInterestFilter command succeeds. More...
 
typedef function< void(const Name &, const std::string &)> RegisterPrefixFailureCallback
 Callback invoked when registerPrefix or setInterestFilter command fails. More...
 
typedef function< void()> UnregisterPrefixSuccessCallback
 Callback invoked when unregisterPrefix or unsetInterestFilter command succeeds. More...
 
typedef function< void(const std::string &)> UnregisterPrefixFailureCallback
 Callback invoked when unregisterPrefix or unsetInterestFilter command fails. More...
 
using PartialName = Name
 Represents an arbitrary sequence of name components. More...
 
using CanonizeProviders = boost::mpl::vector< UdpCanonizeProvider *, TcpCanonizeProvider *, EtherCanonizeProvider *, DevCanonizeProvider *, UdpDevCanonizeProvider * >
 
using CanonizeProviderTable = std::map< std::string, shared_ptr< CanonizeProvider > >
 
typedef SimplePublicKeyParams< detail::RsaKeyParamsInfoRsaKeyParams
 RsaKeyParams carries parameters for RSA key. More...
 
typedef SimplePublicKeyParams< detail::EcKeyParamsInfoEcKeyParams
 EcKeyParams carries parameters for EC key. More...
 
typedef SimpleSymmetricKeyParams< detail::AesKeyParamsInfoAesKeyParams
 AesKeyParams carries parameters for AES key. More...
 
typedef RegexTopMatcher Regex
 

Enumerations

enum  PendingInterestOrigin { PendingInterestOrigin::APP, PendingInterestOrigin::FORWARDER }
 Indicates where a pending Interest came from. More...
 
enum  KeyIdType { KeyIdType::USER_SPECIFIED = 0, KeyIdType::SHA256 = 1, KeyIdType::RANDOM = 2 }
 The type of KeyId component in a key name. More...
 
enum  KeyType { KeyType::NONE = 0, KeyType::RSA = 1, KeyType::EC = 2, KeyType::AES = 128 }
 The type of a cryptographic key. More...
 
enum  KeyClass { KeyClass::NONE, KeyClass::PUBLIC, KeyClass::PRIVATE, KeyClass::SYMMETRIC }
 
enum  DigestAlgorithm {
  DigestAlgorithm::NONE = 0, DigestAlgorithm::SHA224 = 2, DigestAlgorithm::SHA256 = 1, DigestAlgorithm::SHA384 = 3,
  DigestAlgorithm::SHA512 = 4, DigestAlgorithm::BLAKE2B_512 = 10, DigestAlgorithm::BLAKE2S_256 = 11
}
 
enum  BlockCipherAlgorithm { BlockCipherAlgorithm::NONE, BlockCipherAlgorithm::AES_CBC }
 
enum  CipherOperator { CipherOperator::DECRYPT = 0, CipherOperator::ENCRYPT = 1 }
 
enum  AclType { AclType::NONE, AclType::PUBLIC, AclType::PRIVATE }
 

Functions

template size_t Data::wireEncode< encoding::EncoderTag > (EncodingBuffer &, bool) const
 
template size_t Data::wireEncode< encoding::EstimatorTag > (EncodingEstimator &, bool) const
 
bool operator== (const Data &lhs, const Data &rhs)
 
std::ostream & operator<< (std::ostream &os, const Data &data)
 
bool operator!= (const Data &lhs, const Data &rhs)
 
template size_t DelegationList::wireEncode< encoding::EncoderTag > (EncodingBuffer &, uint32_t) const
 
template size_t DelegationList::wireEncode< encoding::EstimatorTag > (EncodingEstimator &, uint32_t) const
 
bool operator== (const DelegationList &lhs, const DelegationList &rhs)
 compare whether two DelegationLists are equal More...
 
std::ostream & operator<< (std::ostream &os, const DelegationList &dl)
 
bool operator!= (const DelegationList &lhs, const DelegationList &rhs)
 
bool operator== (const Delegation &lhs, const Delegation &rhs)
 
bool operator< (const Delegation &lhs, const Delegation &rhs)
 
bool operator<= (const Delegation &lhs, const Delegation &rhs)
 
std::ostream & operator<< (std::ostream &os, const Delegation &del)
 
bool operator!= (const Delegation &lhs, const Delegation &rhs)
 
bool operator> (const Delegation &lhs, const Delegation &rhs)
 
bool operator>= (const Delegation &lhs, const Delegation &rhs)
 
template<typename Field , typename Tag , typename Packet >
void addFieldFromTag (lp::Packet &lpPacket, const Packet &packet)
 
template<typename Tag , typename Field , typename Packet >
void addTagFromField (Packet &packet, const lp::Packet &lpPacket)
 
std::ostream & operator<< (std::ostream &os, PendingInterestOrigin origin)
 
bool operator== (const Block &lhs, const Block &rhs)
 Compare whether two Blocks have same TLV-TYPE, TLV-LENGTH, and TLV-VALUE. More...
 
std::ostream & operator<< (std::ostream &os, const Block &block)
 
bool operator!= (const Block &lhs, const Block &rhs)
 
bool operator== (const Exclude::ExcludeComponent &a, const Exclude::ExcludeComponent &b)
 
bool operator> (const Exclude::ExcludeComponent &a, const Exclude::ExcludeComponent &b)
 
std::ostream & operator<< (std::ostream &os, const Exclude::Range &range)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (Exclude)
 
std::ostream & operator<< (std::ostream &os, const Exclude &exclude)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (Exclude)
 
template<typename NetPkt >
static void extractLpLocalFields (NetPkt &netPacket, const lp::Packet &lpPacket)
 extract local fields from NDNLPv2 packet and tag onto a network layer packet More...
 
std::ostream & operator<< (std::ostream &os, const InterestFilter &filter)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (Interest)
 
std::ostream & operator<< (std::ostream &os, const Interest &interest)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (Interest)
 
bool operator== (const Interest &lhs, const Interest &rhs)
 
bool operator!= (const Interest &lhs, const Interest &rhs)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (KeyLocator)
 
std::ostream & operator<< (std::ostream &os, const KeyLocator &keyLocator)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (KeyLocator)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (MetaInfo)
 
std::ostream & operator<< (std::ostream &os, const MetaInfo &info)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (MetaInfo)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (Name)
 
std::ostream & operator<< (std::ostream &os, const Name &name)
 Print URI representation of a name. More...
 
std::istream & operator>> (std::istream &is, Name &name)
 Parse URI from stream as Name. More...
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (Name)
 
bool operator== (const Name &lhs, const Name &rhs)
 
bool operator!= (const Name &lhs, const Name &rhs)
 
bool operator<= (const Name &lhs, const Name &rhs)
 
bool operator< (const Name &lhs, const Name &rhs)
 
bool operator>= (const Name &lhs, const Name &rhs)
 
bool operator> (const Name &lhs, const Name &rhs)
 
std::ostream & operator<< (std::ostream &os, const FaceUri &uri)
 
static const CanonizeProvidergetCanonizeProvider (const std::string &scheme)
 
std::ostream & operator<< (std::ostream &os, KeyIdType keyIdType)
 
std::ostream & operator<< (std::ostream &os, KeyType keyType)
 
std::ostream & operator<< (std::ostream &os, KeyClass keyClass)
 
std::ostream & operator<< (std::ostream &os, DigestAlgorithm algorithm)
 
std::ostream & operator<< (std::ostream &os, BlockCipherAlgorithm algorithm)
 
std::ostream & operator<< (std::ostream &os, CipherOperator op)
 
std::ostream & operator<< (std::ostream &os, AclType aclType)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (Selectors)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (Selectors)
 
 NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS (SignatureInfo)
 
bool operator== (const SignatureInfo &lhs, const SignatureInfo &rhs)
 
std::ostream & operator<< (std::ostream &os, const SignatureInfo &info)
 
 NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS (SignatureInfo)
 
bool operator!= (const SignatureInfo &lhs, const SignatureInfo &rhs)
 
bool operator== (const Signature &lhs, const Signature &rhs)
 
bool operator!= (const Signature &lhs, const Signature &rhs)
 
template<typename T >
constexpr bool operator== (const optional< T > &lhs, const optional< T > &rhs)
 
template<typename T >
constexpr bool operator!= (const optional< T > &lhs, const optional< T > &rhs)
 
template<typename T >
constexpr bool operator< (const optional< T > &lhs, const optional< T > &rhs)
 
template<typename T >
constexpr bool operator<= (const optional< T > &lhs, const optional< T > &rhs)
 
template<typename T >
constexpr bool operator> (const optional< T > &lhs, const optional< T > &rhs)
 
template<typename T >
constexpr bool operator>= (const optional< T > &lhs, const optional< T > &rhs)
 
template<typename T >
constexpr optional< typename std::decay< T >::type > make_optional (T &&value)
 
template<typename T , typename... Args>
constexpr optional< T > make_optional (Args &&... args)
 
template<typename CharT , typename Traits , typename DelimT >
ostream_joiner< typename std::decay< DelimT >::type, CharT, Traits > make_ostream_joiner (std::basic_ostream< CharT, Traits > &os, DelimT &&delimiter)
 
template<typename T , typename ... Args>
unique_ptr< T > make_unique (Args &&... args)
 
template<typename V >
std::string to_string (const V &v)
 
template<typename T , typename Compare >
constexpr const T & clamp (const T &v, const T &lo, const T &hi, Compare comp)
 
template<typename T >
constexpr const T & clamp (const T &v, const T &lo, const T &hi)
 
std::ostream & operator<< (std::ostream &os, const RegexMatcher &rm)
 
std::ostream & operator<< (std::ostream &os, const AsHex &hex)
 
void printHex (std::ostream &os, uint64_t num, bool wantUpperCase=false)
 Output the hex representation of num to the output stream os. More...
 
void printHex (std::ostream &os, const uint8_t *buffer, size_t length, bool wantUpperCase=true)
 Output the hex representation of the bytes in buffer to the output stream os. More...
 
void printHex (std::ostream &os, const Buffer &buffer, bool wantUpperCase=true)
 Output the hex representation of the bytes in buffer to the output stream os. More...
 
std::string toHex (const uint8_t *buffer, size_t length, bool wantUpperCase=true)
 Return a string containing the hex representation of the bytes in buffer. More...
 
std::string toHex (const Buffer &buffer, bool wantUpperCase=true)
 Return a string containing the hex representation of the bytes in buffer. More...
 
shared_ptr< BufferfromHex (const std::string &hexString)
 Convert the hex string to buffer. More...
 
std::string escape (const std::string &str)
 Percent-encode a string. More...
 
void escape (std::ostream &os, const char *str, size_t len)
 
std::string unescape (const std::string &str)
 Decode a percent-encoded string. More...
 
void unescape (std::ostream &os, const char *str, size_t len)
 
constexpr char toHexChar (unsigned int n, bool wantUpperCase=true) noexcept
 Convert (the least significant nibble of) n to the corresponding hex character. More...
 
constexpr int fromHexChar (char c) noexcept
 Convert the hex character c to an integer in [0, 15], or -1 if it's not a hex character. More...
 

Variables

 WireEncodable< Data >
 
 WireEncodableWithEncodingBuffer< Data >
 
 WireDecodable< Data >
 
 WireEncodableWithEncodingBuffer< DelegationList >
 
 WireDecodable< DelegationList >
 
const size_t MAX_SIZE_OF_BLOCK_FROM_STREAM = MAX_NDN_PACKET_SIZE
 
const size_t MAX_NDN_PACKET_SIZE = 8800
 practical limit of network layer packet size More...
 
 WireEncodable< Exclude >
 
 WireEncodableWithEncodingBuffer< Exclude >
 
 WireDecodable< Exclude >
 
 WireEncodable< Interest >
 
 WireEncodableWithEncodingBuffer< Interest >
 
 WireDecodable< Interest >
 
const time::milliseconds DEFAULT_INTEREST_LIFETIME = 4_s
 default value for InterestLifetime More...
 
 WireEncodable< KeyLocator >
 
 WireEncodableWithEncodingBuffer< KeyLocator >
 
 WireDecodable< KeyLocator >
 
 WireEncodable< Link >
 
 WireEncodableWithEncodingBuffer< Link >
 
 WireDecodable< Link >
 
 WireEncodable< MetaInfo >
 
 WireEncodableWithEncodingBuffer< MetaInfo >
 
 WireDecodable< MetaInfo >
 
const time::milliseconds DEFAULT_FRESHNESS_PERIOD = time::milliseconds::zero()
 
 WireEncodable< Name >
 
 WireEncodableWithEncodingBuffer< Name >
 
 WireDecodable< Name >
 
static const uint32_t MIN_RSA_KEY_SIZE = 1024
 
static const uint32_t DEFAULT_RSA_KEY_SIZE = 2048
 
static const uint32_t EC_KEY_SIZES [] = {256, 384}
 
static const uint32_t AES_KEY_SIZES [] = {128, 192, 256}
 
 WireEncodable< Selectors >
 
 WireEncodableWithEncodingBuffer< Selectors >
 
 WireDecodable< Selectors >
 
const int DEFAULT_CHILD_SELECTOR = 0
 
 WireEncodable< SignatureInfo >
 
 WireEncodableWithEncodingBuffer< SignatureInfo >
 
 WireDecodable< SignatureInfo >
 
constexpr in_place_t in_place {}
 
constexpr nullopt_t nullopt {0}
 
static constexpr size_t BOOST_REGEXP_MARK_COUNT_CORRECTION
 

Detailed Description

Copyright (c) 2011-2015 Regents of the University of California.

Copyright (c) 2013-2014 Regents of the University of California.

Copyright (c) 2014-2017 Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.

Copyright (c) 2013-2015 Regents of the University of California.

Copyright (c) 2013-2016 Regents of the University of California.

Copyright (c) 2013-2017 Regents of the University of California.

Copyright (c) 2014-2017, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.

This file is part of ndnSIM. See AUTHORS for complete list of ndnSIM authors and contributors.

ndnSIM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndnSIM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with ndnSIM, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

Louis, Beijing Institute of Technology, The University of Memphis.

This file is part of NFD (Named Data Networking Forwarding Daemon). See AUTHORS.md for complete list of NFD authors and contributors.

NFD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with NFD, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

Author
Alexander Afanasyev http://lasr.cs.ucla.edu/afanasyev/index.html

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

Author
Eric Newberry enewb.nosp@m.erry.nosp@m.@emai.nosp@m.l.ar.nosp@m.izona.nosp@m..edu

Louis, Beijing Institute of Technology, The University of Memphis.

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

Author
Davide Pesavento david.nosp@m.e.pe.nosp@m.saven.nosp@m.to@l.nosp@m.ip6.f.nosp@m.r

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

Author
Alexander Afanasyev alexa.nosp@m.nder.nosp@m..afan.nosp@m.asye.nosp@m.v@ucl.nosp@m.a.ed.nosp@m.u
Davide Pesavento david.nosp@m.e.pe.nosp@m.saven.nosp@m.to@l.nosp@m.ip6.f.nosp@m.r

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

Author
Zhiyi Zhang dream.nosp@m.erba.nosp@m.rrych.nosp@m.ang@.nosp@m.gmail.nosp@m..com
Yingdi Yu http://irl.cs.ucla.edu/~yingdi/

This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

ndn-cxx library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received copies of the GNU General Public License and GNU Lesser General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

See AUTHORS.md for complete list of ndn-cxx authors and contributors.

Author
Yingdi Yu http://irl.cs.ucla.edu/~yingdi/

Typedef Documentation

◆ BufferPtr

using ndn::BufferPtr = typedef shared_ptr<Buffer>

Definition at line 88 of file buffer.hpp.

◆ ConstBufferPtr

using ndn::ConstBufferPtr = typedef shared_ptr<const Buffer>

Definition at line 89 of file buffer.hpp.

◆ DataCallback

typedef function<void(const Interest&, const Data&)> ndn::DataCallback

Callback invoked when expressed Interest gets satisfied with a Data packet.

Definition at line 50 of file face.hpp.

◆ NackCallback

typedef function<void(const Interest&, const lp::Nack&)> ndn::NackCallback

Callback invoked when Nack is sent in response to expressed Interest.

Definition at line 55 of file face.hpp.

◆ TimeoutCallback

typedef function<void(const Interest&)> ndn::TimeoutCallback

Callback invoked when expressed Interest times out.

Definition at line 60 of file face.hpp.

◆ InterestCallback

typedef function<void(const InterestFilter&, const Interest&)> ndn::InterestCallback

Callback invoked when incoming Interest matches the specified InterestFilter.

Definition at line 65 of file face.hpp.

◆ RegisterPrefixSuccessCallback

typedef function<void(const Name&)> ndn::RegisterPrefixSuccessCallback

Callback invoked when registerPrefix or setInterestFilter command succeeds.

Definition at line 70 of file face.hpp.

◆ RegisterPrefixFailureCallback

typedef function<void(const Name&, const std::string&)> ndn::RegisterPrefixFailureCallback

Callback invoked when registerPrefix or setInterestFilter command fails.

Definition at line 75 of file face.hpp.

◆ UnregisterPrefixSuccessCallback

typedef function<void()> ndn::UnregisterPrefixSuccessCallback

Callback invoked when unregisterPrefix or unsetInterestFilter command succeeds.

Definition at line 80 of file face.hpp.

◆ UnregisterPrefixFailureCallback

typedef function<void(const std::string&)> ndn::UnregisterPrefixFailureCallback

Callback invoked when unregisterPrefix or unsetInterestFilter command fails.

Definition at line 85 of file face.hpp.

◆ PartialName

using ndn::PartialName = typedef Name

Represents an arbitrary sequence of name components.

Definition at line 38 of file name.hpp.

◆ CanonizeProviders

◆ CanonizeProviderTable

using ndn::CanonizeProviderTable = typedef std::map<std::string, shared_ptr<CanonizeProvider> >

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

◆ RsaKeyParams

RsaKeyParams carries parameters for RSA key.

Definition at line 203 of file key-params.hpp.

◆ EcKeyParams

EcKeyParams carries parameters for EC key.

Definition at line 206 of file key-params.hpp.

◆ AesKeyParams

AesKeyParams carries parameters for AES key.

Definition at line 288 of file key-params.hpp.

◆ Regex

Definition at line 31 of file regex.hpp.

Enumeration Type Documentation

◆ PendingInterestOrigin

Indicates where a pending Interest came from.

Enumerator
APP 

Interest was received from this app via Face::expressInterest API.

FORWARDER 

Interest was received from the forwarder via Transport.

Definition at line 35 of file pending-interest.hpp.

◆ KeyIdType

enum ndn::KeyIdType
strong

The type of KeyId component in a key name.

Enumerator
USER_SPECIFIED 

User-specified key ID.

It is user's responsibility to assure the uniqueness of the key names.

SHA256 

Use the SHA256 hash of the public key as the key id.

This KeyId type guarantees the uniqueness of the key names.

RANDOM 

Use a 64-bit random number as the key id.

This KeyId provides roughly uniqueness of the key names.

Definition at line 58 of file security-common.hpp.

◆ KeyType

enum ndn::KeyType
strong

The type of a cryptographic key.

Enumerator
NONE 

Unknown key type.

RSA 

RSA key, supports sign/verify and encrypt/decrypt operations.

EC 

Elliptic Curve key (e.g. for ECDSA), supports sign/verify operations.

AES 

AES key, supports encrypt/decrypt operations.

Definition at line 85 of file security-common.hpp.

◆ KeyClass

enum ndn::KeyClass
strong
Enumerator
NONE 
PUBLIC 
PRIVATE 
SYMMETRIC 

Definition at line 95 of file security-common.hpp.

◆ DigestAlgorithm

enum ndn::DigestAlgorithm
strong
Enumerator
NONE 
SHA224 
SHA256 
SHA384 
SHA512 
BLAKE2B_512 
BLAKE2S_256 

Definition at line 105 of file security-common.hpp.

◆ BlockCipherAlgorithm

Enumerator
NONE 
AES_CBC 

Definition at line 118 of file security-common.hpp.

◆ CipherOperator

enum ndn::CipherOperator
strong
Enumerator
DECRYPT 
ENCRYPT 

Definition at line 126 of file security-common.hpp.

◆ AclType

enum ndn::AclType
strong
Enumerator
NONE 
PUBLIC 
PRIVATE 

Definition at line 134 of file security-common.hpp.

Function Documentation

◆ Data::wireEncode< encoding::EncoderTag >()

template size_t ndn::Data::wireEncode< encoding::EncoderTag > ( EncodingBuffer &  ,
bool   
) const

◆ Data::wireEncode< encoding::EstimatorTag >()

template size_t ndn::Data::wireEncode< encoding::EstimatorTag > ( EncodingEstimator &  ,
bool   
) const

◆ operator==() [1/10]

bool ndn::operator== ( const Data lhs,
const Data rhs 
)

◆ operator<<() [1/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const Data data 
)

◆ operator!=() [1/9]

bool ndn::operator!= ( const Data lhs,
const Data rhs 
)
inline

Definition at line 280 of file data.hpp.

Referenced by operator!=().

◆ DelegationList::wireEncode< encoding::EncoderTag >()

template size_t ndn::DelegationList::wireEncode< encoding::EncoderTag > ( EncodingBuffer &  ,
uint32_t   
) const

◆ DelegationList::wireEncode< encoding::EstimatorTag >()

template size_t ndn::DelegationList::wireEncode< encoding::EstimatorTag > ( EncodingEstimator &  ,
uint32_t   
) const

◆ operator==() [2/10]

bool ndn::operator== ( const DelegationList lhs,
const DelegationList rhs 
)

compare whether two DelegationLists are equal

Note
Order matters! If two DelegationLists contain the same Delegations but at least one is unsorted, they may compare unequal if the Delegations appear in different order.

Definition at line 235 of file delegation-list.cpp.

◆ operator<<() [2/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const DelegationList dl 
)

◆ operator!=() [2/9]

bool ndn::operator!= ( const DelegationList lhs,
const DelegationList rhs 
)
inline

Definition at line 251 of file delegation-list.hpp.

◆ operator==() [3/10]

bool ndn::operator== ( const Delegation lhs,
const Delegation rhs 
)

Definition at line 29 of file delegation.cpp.

References ndn::Delegation::name, and ndn::Delegation::preference.

◆ operator<() [1/3]

bool ndn::operator< ( const Delegation lhs,
const Delegation rhs 
)

Definition at line 36 of file delegation.cpp.

References ndn::Delegation::name, and ndn::Delegation::preference.

Referenced by operator<().

◆ operator<=() [1/3]

bool ndn::operator<= ( const Delegation lhs,
const Delegation rhs 
)

Definition at line 43 of file delegation.cpp.

References ndn::Delegation::name, and ndn::Delegation::preference.

Referenced by operator<=().

◆ operator<<() [3/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const Delegation del 
)

Definition at line 50 of file delegation.cpp.

References ndn::Delegation::name, and ndn::Delegation::preference.

◆ operator!=() [3/9]

bool ndn::operator!= ( const Delegation lhs,
const Delegation rhs 
)
inline

Definition at line 42 of file delegation.hpp.

◆ operator>() [1/4]

bool ndn::operator> ( const Delegation lhs,
const Delegation rhs 
)
inline

Definition at line 54 of file delegation.hpp.

Referenced by operator>().

◆ operator>=() [1/3]

bool ndn::operator>= ( const Delegation lhs,
const Delegation rhs 
)
inline

Definition at line 60 of file delegation.hpp.

Referenced by operator>=().

◆ addFieldFromTag()

template<typename Field , typename Tag , typename Packet >
void ndn::addFieldFromTag ( lp::Packet lpPacket,
const Packet &  packet 
)

Definition at line 32 of file lp-field-tag.hpp.

References ndn::lp::Packet::add().

◆ addTagFromField()

template<typename Tag , typename Field , typename Packet >
void ndn::addTagFromField ( Packet &  packet,
const lp::Packet lpPacket 
)

Definition at line 42 of file lp-field-tag.hpp.

References ndn::lp::Packet::get(), and ndn::lp::Packet::has().

◆ operator<<() [4/23]

std::ostream& ndn::operator<< ( std::ostream &  os,
PendingInterestOrigin  origin 
)

Definition at line 42 of file pending-interest.hpp.

References APP, and FORWARDER.

◆ operator==() [4/10]

bool ndn::operator== ( const Block lhs,
const Block rhs 
)

Compare whether two Blocks have same TLV-TYPE, TLV-LENGTH, and TLV-VALUE.

Definition at line 512 of file block.cpp.

References ndn::Block::type(), ndn::Block::value(), and ndn::Block::value_size().

◆ operator<<() [5/23]

std::ostream& ndn::operator<< ( std::ostream &  os,
const Block block 
)

Default-constructed block is printed as: [invalid]. Zero-length block is printed as: TT[empty], where TT is TLV-TYPE in decimal. Non-zero-length block on which Block::parse is not called is printed as: TT[LL]=VVVV, where LL is TLV-LENGTH in decimal, and VVVV is TLV-VALUE is hexadecimal. Block on which Block::parse has been called in printed as: TT[LL]={SUB,SUB}, where SUB is a sub-element printed using this format.

Definition at line 521 of file block.cpp.

References ndn::Block::elements_begin(), ndn::Block::elements_end(), ndn::Block::empty(), ndn::Block::m_elements, make_ostream_joiner(), printHex(), ndn::Block::type(), ndn::Block::value(), and ndn::Block::value_size().

◆ operator!=() [4/9]

bool ndn::operator!= ( const Block lhs,
const Block rhs 
)
inline

Definition at line 448 of file block.hpp.

◆ operator==() [5/10]

bool ndn::operator== ( const Exclude::ExcludeComponent a,
const Exclude::ExcludeComponent b 
)

◆ operator>() [2/4]

bool ndn::operator> ( const Exclude::ExcludeComponent a,
const Exclude::ExcludeComponent b 
)

◆ operator<<() [6/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const Exclude::Range range 
)

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [1/7]

ndn::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( Exclude  )

◆ operator<<() [7/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const Exclude exclude 
)

Definition at line 332 of file exclude.cpp.

References make_ostream_joiner().

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [1/7]

ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( Exclude  )

◆ extractLpLocalFields()

template<typename NetPkt >
static void ndn::extractLpLocalFields ( NetPkt &  netPacket,
const lp::Packet lpPacket 
)
static

extract local fields from NDNLPv2 packet and tag onto a network layer packet

Definition at line 292 of file face.cpp.

References ndn::lp::Packet::get(), and ndn::lp::Packet::has().

◆ operator<<() [8/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const InterestFilter filter 
)

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [2/7]

ndn::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( Interest  )

◆ operator<<() [9/23]

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [2/7]

ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( Interest  )

◆ operator==() [6/10]

bool ndn::operator== ( const Interest lhs,
const Interest rhs 
)
inline

Definition at line 409 of file interest.hpp.

References ndn::Interest::wireEncode().

◆ operator!=() [5/9]

bool ndn::operator!= ( const Interest lhs,
const Interest rhs 
)
inline

Definition at line 415 of file interest.hpp.

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [3/7]

ndn::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( KeyLocator  )

◆ operator<<() [10/23]

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [3/7]

ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( KeyLocator  )

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [4/7]

ndn::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( MetaInfo  )

◆ operator<<() [11/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const MetaInfo info 
)

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [4/7]

ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( MetaInfo  )

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [5/7]

ndn::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( Name  )

◆ operator<<() [12/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const Name name 
)

Print URI representation of a name.

See also
https://named-data.net/doc/NDN-packet-spec/current/name.html#ndn-uri-scheme

Definition at line 304 of file name.cpp.

◆ operator>>()

std::istream & ndn::operator>> ( std::istream &  is,
Name name 
)

Parse URI from stream as Name.

See also
https://named-data.net/doc/NDN-packet-spec/current/name.html#ndn-uri-scheme

Definition at line 319 of file name.cpp.

References ns3::ndn::Name.

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [5/7]

ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( Name  )

◆ operator==() [7/10]

bool ndn::operator== ( const Name lhs,
const Name rhs 
)
inline

Definition at line 566 of file name.hpp.

References ndn::Name::equals().

◆ operator!=() [6/9]

bool ndn::operator!= ( const Name lhs,
const Name rhs 
)
inline

Definition at line 572 of file name.hpp.

References ndn::Name::equals().

◆ operator<=() [2/3]

bool ndn::operator<= ( const Name lhs,
const Name rhs 
)
inline

Definition at line 578 of file name.hpp.

References ndn::Name::compare().

◆ operator<() [2/3]

bool ndn::operator< ( const Name lhs,
const Name rhs 
)
inline

Definition at line 584 of file name.hpp.

References ndn::Name::compare().

◆ operator>=() [2/3]

bool ndn::operator>= ( const Name lhs,
const Name rhs 
)
inline

Definition at line 590 of file name.hpp.

References ndn::Name::compare().

◆ operator>() [3/4]

bool ndn::operator> ( const Name lhs,
const Name rhs 
)
inline

Definition at line 596 of file name.hpp.

References ndn::Name::compare().

◆ operator<<() [13/23]

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

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

◆ getCanonizeProvider()

static const CanonizeProvider* ndn::getCanonizeProvider ( const std::string &  scheme)
static

◆ operator<<() [14/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
KeyIdType  keyIdType 
)

Definition at line 29 of file security-common.cpp.

References RANDOM, SHA256, and USER_SPECIFIED.

◆ operator<<() [15/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
KeyType  keyType 
)

Definition at line 43 of file security-common.cpp.

References AES, EC, NONE, and RSA.

◆ operator<<() [16/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
KeyClass  keyClass 
)

Definition at line 59 of file security-common.cpp.

References NONE, PRIVATE, PUBLIC, and SYMMETRIC.

◆ operator<<() [17/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
DigestAlgorithm  algorithm 
)

Definition at line 75 of file security-common.cpp.

References BLAKE2B_512, BLAKE2S_256, NONE, SHA224, SHA256, SHA384, and SHA512.

◆ operator<<() [18/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
BlockCipherAlgorithm  algorithm 
)

Definition at line 97 of file security-common.cpp.

References AES_CBC, and NONE.

◆ operator<<() [19/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
CipherOperator  op 
)

Definition at line 109 of file security-common.cpp.

References DECRYPT, and ENCRYPT.

◆ operator<<() [20/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
AclType  aclType 
)

Definition at line 121 of file security-common.cpp.

References NONE, PRIVATE, and PUBLIC.

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [6/7]

ndn::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( Selectors  )

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [6/7]

ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( Selectors  )

◆ NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS() [7/7]

ndn::NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS ( SignatureInfo  )

◆ operator==() [8/10]

bool ndn::operator== ( const SignatureInfo lhs,
const SignatureInfo rhs 
)

Definition at line 221 of file signature-info.cpp.

◆ operator<<() [21/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const SignatureInfo info 
)

◆ NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS() [7/7]

ndn::NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS ( SignatureInfo  )

◆ operator!=() [7/9]

bool ndn::operator!= ( const SignatureInfo lhs,
const SignatureInfo rhs 
)
inline

Definition at line 171 of file signature-info.hpp.

◆ operator==() [9/10]

bool ndn::operator== ( const Signature lhs,
const Signature rhs 
)

Definition at line 68 of file signature.cpp.

References ndn::Signature::getSignatureInfo(), and ndn::Signature::getValue().

◆ operator!=() [8/9]

bool ndn::operator!= ( const Signature lhs,
const Signature rhs 
)
inline

Definition at line 162 of file signature.hpp.

◆ operator==() [10/10]

template<typename T >
constexpr bool ndn::operator== ( const optional< T > &  lhs,
const optional< T > &  rhs 
)

Definition at line 298 of file backports-optional.hpp.

References operator==().

◆ operator!=() [9/9]

template<typename T >
constexpr bool ndn::operator!= ( const optional< T > &  lhs,
const optional< T > &  rhs 
)

Definition at line 305 of file backports-optional.hpp.

References operator!=().

◆ operator<() [3/3]

template<typename T >
constexpr bool ndn::operator< ( const optional< T > &  lhs,
const optional< T > &  rhs 
)

Definition at line 312 of file backports-optional.hpp.

References operator<().

◆ operator<=() [3/3]

template<typename T >
constexpr bool ndn::operator<= ( const optional< T > &  lhs,
const optional< T > &  rhs 
)

Definition at line 319 of file backports-optional.hpp.

References operator<=().

◆ operator>() [4/4]

template<typename T >
constexpr bool ndn::operator> ( const optional< T > &  lhs,
const optional< T > &  rhs 
)

Definition at line 326 of file backports-optional.hpp.

References operator>().

◆ operator>=() [3/3]

template<typename T >
constexpr bool ndn::operator>= ( const optional< T > &  lhs,
const optional< T > &  rhs 
)

Definition at line 333 of file backports-optional.hpp.

References operator>=().

◆ make_optional() [1/2]

template<typename T >
constexpr optional<typename std::decay<T>::type> ndn::make_optional ( T &&  value)

Definition at line 340 of file backports-optional.hpp.

◆ make_optional() [2/2]

template<typename T , typename... Args>
constexpr optional<T> ndn::make_optional ( Args &&...  args)

Definition at line 347 of file backports-optional.hpp.

References in_place.

◆ make_ostream_joiner()

template<typename CharT , typename Traits , typename DelimT >
ostream_joiner<typename std::decay<DelimT>::type, CharT, Traits> ndn::make_ostream_joiner ( std::basic_ostream< CharT, Traits > &  os,
DelimT &&  delimiter 
)
inline

Definition at line 117 of file backports-ostream-joiner.hpp.

Referenced by ndn::nfd::operator<<(), and operator<<().

◆ make_unique()

template<typename T , typename ... Args>
unique_ptr<T> ndn::make_unique ( Args &&...  args)
inline

Definition at line 96 of file backports.hpp.

◆ to_string()

template<typename V >
std::string ndn::to_string ( const V &  v)
inline

Definition at line 107 of file backports.hpp.

Referenced by nfd::fw::AccessStrategy::AccessStrategy(), nfd::fw::asf::AsfStrategy::AsfStrategy(), nfd::fw::BestRouteStrategy::BestRouteStrategy(), nfd::fw::BestRouteStrategy2::BestRouteStrategy2(), ndn::security::v2::validator_config::Rule::check(), nfd::ethernet::checkFrameHeader(), nfd::fw::ClientControlStrategy::ClientControlStrategy(), ndn::lp::DecodeHelper< TlvType, EmptyValue >::decode(), ndn::lp::DecodeHelper< TlvType, std::pair< Buffer::const_iterator, Buffer::const_iterator > >::decode(), ndn::lp::FieldDecl< LOCATION, VALUE, TYPE, REPEATABLE, DECODER_TAG, ENCODER_TAG >::decode(), ndn::security::transform::PrivateKey::decrypt(), ndn::DigestSha256::DigestSha256(), nfd::PrivilegeHelper::drop(), ndn::security::transform::PublicKey::encrypt(), ndn::FaceUri::FaceUri(), ndn::name::Component::fromEscapedString(), ndn::FaceUri::fromFd(), ndn::name::Component::fromImplicitSha256Digest(), ndn::FaceUri::fromUdpDev(), ndn::random::generateSecureBytes(), ndn::Block::get(), ndn::SignatureInfo::getTypeSpecificTlv(), ndn::security::v2::validator_config::ValidationPolicyConfig::load(), main(), ndn::security::v2::validator_config::Rule::match(), nfd::fw::MulticastStrategy::MulticastStrategy(), nfd::fw::NccStrategy::NccStrategy(), nfd::strategy_choice::operator<<(), nfd::ConfigFile::parse(), ndn::Block::parse(), ndn::encoding::readNonNegativeIntegerAs(), nfd::fw::asf::ProbingModule::setProbingInterval(), ndn::Signature::setValue(), ndn::SignatureSha256WithEcdsa::SignatureSha256WithEcdsa(), ndn::SignatureSha256WithRsa::SignatureSha256WithRsa(), ndn::lp::Packet::wireDecode(), ndn::nfd::CsInfo::wireDecode(), ndn::lp::PrefixAnnouncement::wireDecode(), ndn::mgmt::ControlResponse::wireDecode(), ndn::nfd::NextHopRecord::wireDecode(), ndn::DelegationList::wireDecode(), ndn::SignatureInfo::wireDecode(), ndn::Interest::wireDecode(), ndn::Data::wireDecode(), ndn::nfd::Route::wireDecode(), ndn::nfd::FibEntry::wireDecode(), ndn::nfd::RibEntry::wireDecode(), and ndn::DelegationList::wireEncode().

◆ clamp() [1/2]

template<typename T , typename Compare >
constexpr const T& ndn::clamp ( const T &  v,
const T &  lo,
const T &  hi,
Compare  comp 
)

Definition at line 118 of file backports.hpp.

◆ clamp() [2/2]

template<typename T >
constexpr const T& ndn::clamp ( const T &  v,
const T &  lo,
const T &  hi 
)

Definition at line 125 of file backports.hpp.

◆ operator<<() [22/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const RegexMatcher rm 
)

Definition at line 75 of file regex-matcher.cpp.

References ndn::RegexMatcher::getExpr().

◆ operator<<() [23/23]

std::ostream & ndn::operator<< ( std::ostream &  os,
const AsHex hex 
)

Definition at line 35 of file string-helper.cpp.

References printHex().

◆ printHex() [1/3]

void ndn::printHex ( std::ostream &  os,
uint64_t  num,
bool  wantUpperCase = false 
)

Output the hex representation of num to the output stream os.

Parameters
osOutput stream
numNumber to print in hexadecimal format
wantUpperCaseif true, print uppercase hex chars; the default is to use lowercase

The output string is a continuous sequence of hex characters without any whitespace separators.

Definition at line 42 of file string-helper.cpp.

Referenced by ndn::util::operator<<(), operator<<(), printHex(), toHex(), and ndn::name::Component::toUri().

◆ printHex() [2/3]

void ndn::printHex ( std::ostream &  os,
const uint8_t *  buffer,
size_t  length,
bool  wantUpperCase = true 
)

Output the hex representation of the bytes in buffer to the output stream os.

Parameters
osOutput stream
bufferPointer to an array of bytes
lengthSize of the array
wantUpperCaseif true (the default) print uppercase hex chars

Examples:

printHex(std::cout, "Hello, World!"); // outputs "48656C6C6F2C20776F726C6421"
printHex(std::cout, "Hello, World!", false); // outputs "48656c6c6f2c20776f726c6421"

Each octet is always represented as two hex characters ("00" for octet==0).

The output string is a continuous sequence of hex characters without any whitespace separators.

Definition at line 53 of file string-helper.cpp.

References ndn::security::transform::hexEncode(), and ndn::security::transform::streamSink().

◆ printHex() [3/3]

void ndn::printHex ( std::ostream &  os,
const Buffer buffer,
bool  wantUpperCase = true 
)

Output the hex representation of the bytes in buffer to the output stream os.

Parameters
osOutput stream
bufferBuffer of bytes to print in hexadecimal format
wantUpperCaseif true (the default) print uppercase hex chars

Definition at line 61 of file string-helper.cpp.

References printHex().

◆ toHex() [1/2]

std::string ndn::toHex ( const uint8_t *  buffer,
size_t  length,
bool  wantUpperCase = true 
)

Return a string containing the hex representation of the bytes in buffer.

Parameters
bufferPointer to an array of bytes
lengthSize of the array
wantUpperCaseif true (the default) use uppercase hex chars

Examples:

toHex("Hello, World!") == "48656C6C6F2C20776F726C6421"
toHex("Hello, World!", false) == "48656c6c6f2c20776f726c6421"

Each octet is always represented as two hex characters ("00" for octet==0).

The output string is a continuous sequence of hex characters without any whitespace separators.

Definition at line 67 of file string-helper.cpp.

References printHex().

Referenced by operator<<(), toHex(), and ndn::util::Sha256::toString().

◆ toHex() [2/2]

std::string ndn::toHex ( const Buffer buffer,
bool  wantUpperCase = true 
)

Return a string containing the hex representation of the bytes in buffer.

Parameters
bufferBuffer of bytes to convert to hexadecimal format
wantUpperCaseif true (the default) use uppercase hex chars

Definition at line 75 of file string-helper.cpp.

References toHex().

◆ fromHex()

shared_ptr< Buffer > ndn::fromHex ( const std::string &  hexString)

Convert the hex string to buffer.

Parameters
hexStringsequence of pairs of hex numbers (lower and upper case can be mixed) without any whitespace separators (e.g., "48656C6C6F2C20776F726C6421")
Exceptions
StringHelperErrorif input is invalid

Definition at line 81 of file string-helper.cpp.

References ndn::OBufferStream::buf(), ndn::security::transform::hexDecode(), and ndn::security::transform::streamSink().

Referenced by ndn::name::parseSha256DigestUri().

◆ escape() [1/2]

std::string ndn::escape ( const std::string &  str)

Percent-encode a string.

See also
RFC 3986 section 2

This function will encode all characters that are not one of the following: ALPHA ("a" to "z" and "A" to "Z") / DIGIT (0 to 9) / "-" / "." / "_" / "~"

The hex encoding uses the numbers 0-9 and the uppercase letters A-F.

Examples:

escape("hello world") == "hello%20world"
escape("100%") == "100%25"

Definition at line 97 of file string-helper.cpp.

Referenced by ndn::name::Component::toUri().

◆ escape() [2/2]

void ndn::escape ( std::ostream &  os,
const char *  str,
size_t  len 
)

Definition at line 105 of file string-helper.cpp.

References toHexChar().

◆ unescape() [1/2]

std::string ndn::unescape ( const std::string &  str)

Decode a percent-encoded string.

See also
RFC 3986 section 2

When % is not followed by two hex characters, the output is not transformed.

Examples:

unescape("hello%20world") == "hello world"
unescape("hello%20world%FooBar") == "hello world%FooBar"

Definition at line 126 of file string-helper.cpp.

Referenced by ndn::name::Component::fromEscapedString().

◆ unescape() [2/2]

void ndn::unescape ( std::ostream &  os,
const char *  str,
size_t  len 
)

Definition at line 134 of file string-helper.cpp.

References fromHexChar().

◆ toHexChar()

constexpr char ndn::toHexChar ( unsigned int  n,
bool  wantUpperCase = true 
)
noexcept

Convert (the least significant nibble of) n to the corresponding hex character.

Definition at line 157 of file string-helper.hpp.

Referenced by escape().

◆ fromHexChar()

constexpr int ndn::fromHexChar ( char  c)
noexcept

Convert the hex character c to an integer in [0, 15], or -1 if it's not a hex character.

Definition at line 168 of file string-helper.hpp.

Referenced by unescape().

Variable Documentation

◆ WireEncodable< Data >

Definition at line 29 of file data.cpp.

◆ WireEncodableWithEncodingBuffer< Data >

Definition at line 30 of file data.cpp.

◆ WireDecodable< Data >

Definition at line 31 of file data.cpp.

◆ WireEncodableWithEncodingBuffer< DelegationList >

◆ WireDecodable< DelegationList >

Definition at line 28 of file delegation-list.cpp.

◆ MAX_SIZE_OF_BLOCK_FROM_STREAM

const size_t ndn::MAX_SIZE_OF_BLOCK_FROM_STREAM = MAX_NDN_PACKET_SIZE

Definition at line 47 of file block.cpp.

Referenced by ndn::Block::fromStream().

◆ MAX_NDN_PACKET_SIZE

const size_t ndn::MAX_NDN_PACKET_SIZE = 8800

practical limit of network layer packet size

If a packet is longer than this size, library and application MAY drop it.

Definition at line 39 of file tlv.hpp.

Referenced by ndn::mgmt::StatusDatasetContext::append(), nfd::face::StreamTransport< boost::asio::local::stream_protocol >::handleReceive(), nfd::face::LpReliability::piggyback(), and nfd::face::StreamTransport< boost::asio::local::stream_protocol >::startReceive().

◆ WireEncodable< Exclude >

Definition at line 107 of file exclude.cpp.

◆ WireEncodableWithEncodingBuffer< Exclude >

◆ WireDecodable< Exclude >

Definition at line 109 of file exclude.cpp.

◆ WireEncodable< Interest >

Definition at line 32 of file interest.cpp.

◆ WireEncodableWithEncodingBuffer< Interest >

◆ WireDecodable< Interest >

Definition at line 34 of file interest.cpp.

◆ DEFAULT_INTEREST_LIFETIME

const unspecified_duration_type ndn::DEFAULT_INTEREST_LIFETIME = 4_s

default value for InterestLifetime

Definition at line 38 of file interest.hpp.

Referenced by operator<<(), nfd::pit::FaceRecord::update(), and ndn::Interest::wireEncode().

◆ WireEncodable< KeyLocator >

Definition at line 29 of file key-locator.cpp.

◆ WireEncodableWithEncodingBuffer< KeyLocator >

◆ WireDecodable< KeyLocator >

Definition at line 31 of file key-locator.cpp.

◆ WireEncodable< Link >

Definition at line 27 of file link.cpp.

◆ WireEncodableWithEncodingBuffer< Link >

Definition at line 28 of file link.cpp.

◆ WireDecodable< Link >

Definition at line 29 of file link.cpp.

◆ WireEncodable< MetaInfo >

Definition at line 29 of file meta-info.cpp.

◆ WireEncodableWithEncodingBuffer< MetaInfo >

◆ WireDecodable< MetaInfo >

Definition at line 31 of file meta-info.cpp.

◆ DEFAULT_FRESHNESS_PERIOD

const time::milliseconds ndn::DEFAULT_FRESHNESS_PERIOD = time::milliseconds::zero()

Definition at line 34 of file meta-info.hpp.

Referenced by ndn::MetaInfo::wireDecode(), and ndn::MetaInfo::wireEncode().

◆ WireEncodable< Name >

Definition at line 40 of file name.cpp.

◆ WireEncodableWithEncodingBuffer< Name >

Definition at line 41 of file name.cpp.

◆ WireDecodable< Name >

Definition at line 42 of file name.cpp.

◆ MIN_RSA_KEY_SIZE

const uint32_t ndn::MIN_RSA_KEY_SIZE = 1024
static

Definition at line 26 of file key-params.cpp.

Referenced by ndn::detail::RsaKeyParamsInfo::checkKeySize().

◆ DEFAULT_RSA_KEY_SIZE

const uint32_t ndn::DEFAULT_RSA_KEY_SIZE = 2048
static

Definition at line 27 of file key-params.cpp.

Referenced by ndn::detail::RsaKeyParamsInfo::getDefaultSize().

◆ EC_KEY_SIZES

const uint32_t ndn::EC_KEY_SIZES[] = {256, 384}
static

◆ AES_KEY_SIZES

const uint32_t ndn::AES_KEY_SIZES[] = {128, 192, 256}
static

◆ WireEncodable< Selectors >

Definition at line 29 of file selectors.cpp.

◆ WireEncodableWithEncodingBuffer< Selectors >

◆ WireDecodable< Selectors >

Definition at line 31 of file selectors.cpp.

◆ DEFAULT_CHILD_SELECTOR

const int ndn::DEFAULT_CHILD_SELECTOR = 0

◆ WireEncodable< SignatureInfo >

Definition at line 29 of file signature-info.cpp.

◆ WireEncodableWithEncodingBuffer< SignatureInfo >

◆ WireDecodable< SignatureInfo >

Definition at line 31 of file signature-info.cpp.

◆ in_place

constexpr in_place_t ndn::in_place {}

Definition at line 98 of file backports-optional.hpp.

Referenced by make_optional().

◆ nullopt

◆ BOOST_REGEXP_MARK_COUNT_CORRECTION

constexpr size_t ndn::BOOST_REGEXP_MARK_COUNT_CORRECTION
static
Initial value:
=
1

Definition at line 35 of file regex-component-matcher.cpp.

Referenced by ndn::RegexComponentMatcher::compile(), and ndn::RegexComponentMatcher::match().