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

Represents a name component. More...

#include <name-component.hpp>

Inheritance diagram for ndn::name::Component:
Collaboration diagram for ndn::name::Component:

Classes

class  Error
 

Public Member Functions

 Component (uint32_t type=tlv::GenericNameComponent)
 Construct a NameComponent of TLV-TYPE type and with empty TLV-VALUE. More...
 
 Component (const Block &block)
 Construct a NameComponent from block. More...
 
 Component (uint32_t type, ConstBufferPtr buffer)
 Construct a NameComponent of TLV-TYPE type, using TLV-VALUE from buffer. More...
 
 Component (ConstBufferPtr buffer)
 Construct a GenericNameComponent, using TLV-VALUE from buffer. More...
 
 Component (uint32_t type, span< const uint8_t > value)
 Construct a NameComponent of TLV-TYPE type, copying the TLV-VALUE from value. More...
 
 Component (span< const uint8_t > buffer)
 Construct a GenericNameComponent, copying the TLV-VALUE from buffer. More...
 
 Component (uint32_t type, const uint8_t *value, size_t count)
 Construct a NameComponent of TLV-TYPE type, copying count bytes at value as TLV-VALUE. More...
 
 Component (const uint8_t *value, size_t count)
 Construct a GenericNameComponent, copying count bytes at value as TLV-VALUE. More...
 
template<class Iterator >
 Component (uint32_t type, Iterator first, Iterator last)
 Construct a NameComponent of TLV-TYPE type, copying TLV-VALUE from a range. More...
 
template<class Iterator >
 Component (Iterator first, Iterator last)
 Construct a GenericNameComponent, copying TLV-VALUE from a range. More...
 
 Component (const char *str)
 Construct a GenericNameComponent, copying TLV-VALUE from a null-terminated string. More...
 
 Component (const std::string &str)
 Construct a GenericNameComponent, copying TLV-VALUE from a string. More...
 
template<encoding::Tag TAG>
size_t wireEncode (EncodingImpl< TAG > &encoder) const
 Fast encoding or block size estimation. More...
 
const BlockwireEncode () const
 Encode to a wire format. More...
 
void wireDecode (const Block &wire)
 Decode from the wire format. More...
 
void toUri (std::ostream &os, UriFormat format=UriFormat::DEFAULT) const
 Write *this to the output stream, escaping characters according to the NDN URI format. More...
 
std::string toUri (UriFormat format=UriFormat::DEFAULT) const
 Convert *this by escaping characters according to the NDN URI format. More...
 
bool isNumber () const
 Check if the component is a NonNegativeInteger. More...
 
bool isNumberWithMarker (uint8_t marker) const
 Check if the component is a NameComponentWithMarker per NDN naming conventions rev1. More...
 
bool isSegment () const
 Check if the component is a segment number per NDN naming conventions. More...
 
bool isByteOffset () const
 Check if the component is a byte offset per NDN naming conventions. More...
 
bool isVersion () const
 Check if the component is a version per NDN naming conventions. More...
 
bool isTimestamp () const
 Check if the component is a timestamp per NDN naming conventions. More...
 
bool isSequenceNumber () const
 Check if the component is a sequence number per NDN naming conventions. More...
 
uint64_t toNumber () const
 Interpret this name component as a NonNegativeInteger. More...
 
uint64_t toNumberWithMarker (uint8_t marker) const
 Interpret this name component as a NameComponentWithMarker. More...
 
uint64_t toSegment () const
 Interpret as segment number component using NDN naming conventions. More...
 
uint64_t toByteOffset () const
 Interpret as byte offset component using NDN naming conventions. More...
 
uint64_t toVersion () const
 Interpret as version component using NDN naming conventions. More...
 
time::system_clock::time_point toTimestamp () const
 Interpret as timestamp component using NDN naming conventions. More...
 
uint64_t toSequenceNumber () const
 Interpret as sequence number component using NDN naming conventions. More...
 
bool isGeneric () const noexcept
 Check if the component is a GenericNameComponent. More...
 
bool isImplicitSha256Digest () const
 Check if the component is an ImplicitSha256DigestComponent. More...
 
bool isParametersSha256Digest () const
 Check if the component is a ParametersSha256DigestComponent. More...
 
bool isKeyword () const noexcept
 Check if the component is a KeywordNameComponent. More...
 
NDN_CXX_NODISCARD bool empty () const
 
bool equals (const Component &other) const
 Check if this is the same component as other. More...
 
int compare (const Component &other) const
 Compare this to the other Component using NDN canonical ordering. More...
 
Component getSuccessor () const
 Get the successor of this name component. More...
 
- Public Member Functions inherited from ndn::Block
 Block ()
 Create an invalid Block. More...
 
 Block (const Block &)
 Copy constructor. More...
 
Blockoperator= (const Block &)
 Copy assignment operator. More...
 
 Block (Block &&) noexcept
 Move constructor. More...
 
Blockoperator= (Block &&) noexcept
 Move assignment operator. More...
 
 Block (span< const uint8_t > buffer)
 Parse Block from a byte range. More...
 
 Block (const EncodingBuffer &buffer)
 Parse Block from an EncodingBuffer. More...
 
 Block (const ConstBufferPtr &buffer)
 Parse Block from a wire Buffer. More...
 
 Block (ConstBufferPtr buffer, Buffer::const_iterator begin, Buffer::const_iterator end, bool verifyLength=true)
 Parse Block within boundaries of a wire Buffer. More...
 
 Block (const Block &block, Block::const_iterator begin, Block::const_iterator end, bool verifyLength=true)
 Parse Block within boundaries of an existing Block, reusing underlying wire Buffer. More...
 
 Block (ConstBufferPtr buffer, uint32_t type, Buffer::const_iterator begin, Buffer::const_iterator end, Buffer::const_iterator valueBegin, Buffer::const_iterator valueEnd)
 Create a Block from a wire Buffer without parsing. More...
 
 Block (uint32_t type)
 Create a zero-length Block with the specified TLV-TYPE. More...
 
 Block (uint32_t type, ConstBufferPtr value)
 Create a Block with the specified TLV-TYPE and TLV-VALUE. More...
 
 Block (uint32_t type, const Block &value)
 Create a Block with the specified TLV-TYPE and TLV-VALUE. More...
 
bool isValid () const noexcept
 Check if the Block is valid. More...
 
void reset () noexcept
 Reset the Block to a default-constructed state. More...
 
void resetWire () noexcept
 Reset wire buffer but keep TLV-TYPE and sub-elements (if any) More...
 
bool hasWire () const noexcept
 Check if the Block contains a fully encoded wire representation. More...
 
const_iterator begin () const
 Get begin iterator of encoded wire. More...
 
const_iterator end () const
 Get end iterator of encoded wire. More...
 
const uint8_t * data () const
 Return a raw pointer to the beginning of the encoded wire. More...
 
const uint8_t * wire () const
 
size_t size () const
 Return the size of the encoded wire, i.e., of the whole TLV. More...
 
ConstBufferPtr getBuffer () const
 Get underlying buffer. More...
 
uint32_t type () const noexcept
 Return the TLV-TYPE of the Block. More...
 
bool hasValue () const noexcept
 Check if the Block has a non-empty TLV-VALUE. More...
 
const_iterator value_begin () const noexcept
 Get begin iterator of TLV-VALUE. More...
 
const_iterator value_end () const noexcept
 Get end iterator of TLV-VALUE. More...
 
size_t value_size () const noexcept
 Return the size of TLV-VALUE, i.e., the TLV-LENGTH. More...
 
span< const uint8_t > value_bytes () const noexcept
 Return a read-only view of TLV-VALUE as a contiguous range of bytes. More...
 
const uint8_t * value () const noexcept
 Return a raw pointer to the beginning of TLV-VALUE. More...
 
Block blockFromValue () const
 Return a new Block constructed from the TLV-VALUE of this Block. More...
 
void parse () const
 Parse TLV-VALUE into sub-elements. More...
 
void encode ()
 Encode sub-elements into TLV-VALUE. More...
 
const Blockget (uint32_t type) const
 Return the first sub-element of the specified TLV-TYPE. More...
 
element_const_iterator find (uint32_t type) const
 Find the first sub-element of the specified TLV-TYPE. More...
 
void remove (uint32_t type)
 Remove all sub-elements of the specified TLV-TYPE. More...
 
element_iterator erase (element_const_iterator position)
 Erase a sub-element. More...
 
element_iterator erase (element_const_iterator first, element_const_iterator last)
 Erase a range of sub-elements. More...
 
void push_back (const Block &element)
 Append a sub-element. More...
 
void push_back (Block &&element)
 Append a sub-element. More...
 
element_iterator insert (element_const_iterator pos, const Block &element)
 Insert a sub-element. More...
 
const element_containerelements () const
 Get container of sub-elements. More...
 
element_const_iterator elements_begin () const
 Equivalent to elements().begin() More...
 
element_const_iterator elements_end () const
 Equivalent to elements().end() More...
 
size_t elements_size () const
 Equivalent to elements().size() More...
 
 operator boost::asio::const_buffer () const
 Implicit conversion to boost::asio::const_buffer More...
 

Static Public Member Functions

static Component fromEscapedString (const char *input, size_t beginOffset, size_t endOffset)
 Decode NameComponent from a URI component. More...
 
static Component fromEscapedString (const char *input)
 Decode NameComponent from a URI component. More...
 
static Component fromEscapedString (const std::string &input)
 Decode NameComponent from a URI component. More...
 
static Component fromNumber (uint64_t number, uint32_t type=tlv::GenericNameComponent)
 Create a component encoded as NonNegativeInteger. More...
 
static Component fromNumberWithMarker (uint8_t marker, uint64_t number)
 Create a component encoded as NameComponentWithMarker. More...
 
static Component fromSegment (uint64_t segmentNo)
 Create a segment number component using NDN naming conventions. More...
 
static Component fromByteOffset (uint64_t offset)
 Create a byte offset component using NDN naming conventions. More...
 
static Component fromVersion (uint64_t version)
 Create a version component using NDN naming conventions. More...
 
static Component fromTimestamp (const time::system_clock::time_point &timePoint)
 Create a timestamp component using NDN naming conventions. More...
 
static Component fromSequenceNumber (uint64_t seqNo)
 Create a sequence number component using NDN naming conventions. More...
 
static Component fromImplicitSha256Digest (ConstBufferPtr digest)
 Create ImplicitSha256DigestComponent component. More...
 
static Component fromImplicitSha256Digest (span< const uint8_t > digest)
 Create ImplicitSha256DigestComponent component. More...
 
static Component fromParametersSha256Digest (ConstBufferPtr digest)
 Create ParametersSha256DigestComponent component. More...
 
static Component fromParametersSha256Digest (span< const uint8_t > digest)
 Create ParametersSha256DigestComponent component. More...
 
- Static Public Member Functions inherited from ndn::Block
static NDN_CXX_NODISCARD std::tuple< bool, BlockfromBuffer (ConstBufferPtr buffer, size_t offset=0)
 Try to parse Block from a wire buffer. More...
 
static NDN_CXX_NODISCARD std::tuple< bool, BlockfromBuffer (span< const uint8_t > buffer)
 Try to parse Block from a byte range. More...
 
static Block fromStream (std::istream &is)
 Parse Block from an input stream. More...
 

Friends

bool operator== (const Component &lhs, const Component &rhs)
 
bool operator!= (const Component &lhs, const Component &rhs)
 
bool operator< (const Component &lhs, const Component &rhs)
 
bool operator<= (const Component &lhs, const Component &rhs)
 
bool operator> (const Component &lhs, const Component &rhs)
 
bool operator>= (const Component &lhs, const Component &rhs)
 
std::ostream & operator<< (std::ostream &os, const Component &component)
 

Additional Inherited Members

- Public Types inherited from ndn::Block
using value_type = Buffer::value_type
 
using const_iterator = Buffer::const_iterator
 
using element_container = std::vector< Block >
 
using element_iterator = element_container::iterator
 
using element_const_iterator = element_container::const_iterator
 
- Protected Attributes inherited from ndn::Block
shared_ptr< const Bufferm_buffer
 Underlying buffer storing TLV-VALUE and possibly TLV-TYPE and TLV-LENGTH fields. More...
 
Buffer::const_iterator m_begin
 
Buffer::const_iterator m_end
 
Buffer::const_iterator m_valueBegin
 
Buffer::const_iterator m_valueEnd
 
uint32_t m_type = tlv::Invalid
 TLV-TYPE. More...
 
size_t m_size = 0
 Total size including Type-Length-Value. More...
 
element_container m_elements
 Contains the sub-elements. More...
 

Detailed Description

Represents a name component.

The Component class provides a read-only view of a Block interpreted as a name component. Although it inherits mutation methods from the Block base class, they must not be used, because the enclosing Name would not be updated correctly.

A name component is considered invalid if its TLV-TYPE is outside the range [1, 65535], or, if it is an ImplicitSha256DigestComponent or a ParametersSha256DigestComponent, its TLV-LENGTH is not 32.

Definition at line 107 of file name-component.hpp.

Constructor & Destructor Documentation

◆ Component() [1/12]

ndn::name::Component::Component ( uint32_t  type = tlv::GenericNameComponent)
explicit

Construct a NameComponent of TLV-TYPE type and with empty TLV-VALUE.

Exceptions
Errorthe NameComponent is invalid.

Definition at line 128 of file name-component.cpp.

Referenced by fromNumber(), fromNumberWithMarker(), ndn::name::parseUriEscapedValue(), and wireDecode().

◆ Component() [2/12]

ndn::name::Component::Component ( const Block block)
explicit

Construct a NameComponent from block.

Exceptions
Errorthe NameComponent is invalid.

Definition at line 134 of file name-component.cpp.

◆ Component() [3/12]

ndn::name::Component::Component ( uint32_t  type,
ConstBufferPtr  buffer 
)

Construct a NameComponent of TLV-TYPE type, using TLV-VALUE from buffer.

Exceptions
Errorthe NameComponent is invalid.

This constructor does not copy the underlying buffer, but retains a pointer to it. Therefore, the caller must not change the underlying buffer.

Definition at line 140 of file name-component.cpp.

◆ Component() [4/12]

ndn::name::Component::Component ( ConstBufferPtr  buffer)
inlineexplicit

Construct a GenericNameComponent, using TLV-VALUE from buffer.

Exceptions
Errorthe NameComponent is invalid.

This constructor does not copy the underlying buffer, but retains a pointer to it. Therefore, the caller must not change the underlying buffer.

Definition at line 148 of file name-component.hpp.

◆ Component() [5/12]

ndn::name::Component::Component ( uint32_t  type,
span< const uint8_t >  value 
)

Construct a NameComponent of TLV-TYPE type, copying the TLV-VALUE from value.

Definition at line 146 of file name-component.cpp.

◆ Component() [6/12]

ndn::name::Component::Component ( span< const uint8_t >  buffer)
inlineexplicit

Construct a GenericNameComponent, copying the TLV-VALUE from buffer.

Definition at line 162 of file name-component.hpp.

◆ Component() [7/12]

ndn::name::Component::Component ( uint32_t  type,
const uint8_t *  value,
size_t  count 
)
inline

Construct a NameComponent of TLV-TYPE type, copying count bytes at value as TLV-VALUE.

Deprecated:
Use Component(uint32_t, span<const uint8_t>)

Definition at line 173 of file name-component.hpp.

◆ Component() [8/12]

ndn::name::Component::Component ( const uint8_t *  value,
size_t  count 
)
inline

Construct a GenericNameComponent, copying count bytes at value as TLV-VALUE.

Deprecated:
Use Component(span<const uint8_t>)

Definition at line 183 of file name-component.hpp.

◆ Component() [9/12]

template<class Iterator >
ndn::name::Component::Component ( uint32_t  type,
Iterator  first,
Iterator  last 
)
inline

Construct a NameComponent of TLV-TYPE type, copying TLV-VALUE from a range.

Template Parameters
Iteratoran InputIterator dereferencing to a one-octet value type. More efficient implementation is available when it is a RandomAccessIterator.
Parameters
typethe TLV-TYPE.
firstbeginning of the range.
lastpast-end of the range.

Definition at line 197 of file name-component.hpp.

◆ Component() [10/12]

template<class Iterator >
ndn::name::Component::Component ( Iterator  first,
Iterator  last 
)
inline

Construct a GenericNameComponent, copying TLV-VALUE from a range.

Definition at line 206 of file name-component.hpp.

◆ Component() [11/12]

ndn::name::Component::Component ( const char *  str)
explicit

Construct a GenericNameComponent, copying TLV-VALUE from a null-terminated string.

Bytes from the string are copied as is, and not interpreted as URI component.

Definition at line 152 of file name-component.cpp.

◆ Component() [12/12]

ndn::name::Component::Component ( const std::string &  str)
explicit

Construct a GenericNameComponent, copying TLV-VALUE from a string.

Bytes from the string are copied as is, and not interpreted as URI component.

Definition at line 157 of file name-component.cpp.

Member Function Documentation

◆ wireEncode() [1/2]

template<encoding::Tag TAG>
size_t ndn::name::Component::wireEncode ( EncodingImpl< TAG > &  encoder) const

◆ wireEncode() [2/2]

const Block & ndn::name::Component::wireEncode ( ) const

Encode to a wire format.

Definition at line 529 of file name-component.cpp.

References ndn::Block::hasWire(), and wireDecode().

◆ wireDecode()

void ndn::name::Component::wireDecode ( const Block wire)

Decode from the wire format.

Definition at line 545 of file name-component.cpp.

References Component().

Referenced by wireEncode().

◆ fromEscapedString() [1/3]

static Component ndn::name::Component::fromEscapedString ( const char *  input,
size_t  beginOffset,
size_t  endOffset 
)
inlinestatic

Decode NameComponent from a URI component.

The URI component is read from [input+beginOffset, input+endOffset) range.

Exceptions
ErrorURI component does not represent a valid NameComponent.

Definition at line 255 of file name-component.hpp.

Referenced by ndn::Name::Name().

◆ fromEscapedString() [2/3]

static Component ndn::name::Component::fromEscapedString ( const char *  input)
inlinestatic

Decode NameComponent from a URI component.

Exceptions
ErrorURI component does not represent a valid NameComponent.

Definition at line 265 of file name-component.hpp.

References ndn::name::DEFAULT, ndn::tlv::GenericNameComponent, and websocketpp::http::parser::state::version.

◆ fromEscapedString() [3/3]

Component ndn::name::Component::fromEscapedString ( const std::string &  input)
static

Decode NameComponent from a URI component.

Exceptions
ErrorURI component does not represent a valid NameComponent.

Definition at line 178 of file name-component.cpp.

References ndn::Block::find(), ndn::tlv::GenericNameComponent, ndn::tlv::NameComponentMax, ndn::tlv::NameComponentMin, NDN_THROW, ndn::name::parseUriEscapedValue(), ndn::to_string(), and ndn::Block::type().

◆ toUri() [1/2]

void ndn::name::Component::toUri ( std::ostream &  os,
UriFormat  format = UriFormat::DEFAULT 
) const

Write *this to the output stream, escaping characters according to the NDN URI format.

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

Definition at line 202 of file name-component.cpp.

References ndn::Block::type(), and ndn::name::wantAltUri().

Referenced by ndn::net::computePrefixLength(), ndn::RegexComponentMatcher::match(), and toUri().

◆ toUri() [2/2]

std::string ndn::name::Component::toUri ( UriFormat  format = UriFormat::DEFAULT) const

Convert *this by escaping characters according to the NDN URI format.

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

Definition at line 213 of file name-component.cpp.

References toUri().

◆ isNumber()

bool ndn::name::Component::isNumber ( ) const

◆ isNumberWithMarker()

bool ndn::name::Component::isNumberWithMarker ( uint8_t  marker) const

Check if the component is a NameComponentWithMarker per NDN naming conventions rev1.

See also
NDN Naming Conventions revision 1 (obsolete) https://named-data.net/wp-content/uploads/2014/08/ndn-tr-22-ndn-memo-naming-conventions.pdf

Definition at line 230 of file name-component.cpp.

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

Referenced by isByteOffset(), isSegment(), isSequenceNumber(), isTimestamp(), isVersion(), and toNumberWithMarker().

◆ isSegment()

◆ isByteOffset()

◆ isVersion()

◆ isTimestamp()

◆ isSequenceNumber()

◆ toNumber()

uint64_t ndn::name::Component::toNumber ( ) const

Interpret this name component as a NonNegativeInteger.

See also
https://named-data.net/doc/NDN-packet-spec/current/tlv.html#non-negative-integer-encoding
Returns
The decoded non-negative integer.

Definition at line 274 of file name-component.cpp.

References isNumber(), NDN_THROW, and ndn::encoding::readNonNegativeInteger().

Referenced by toByteOffset(), toSegment(), toSequenceNumber(), toTimestamp(), and toVersion().

◆ toNumberWithMarker()

uint64_t ndn::name::Component::toNumberWithMarker ( uint8_t  marker) const

Interpret this name component as a NameComponentWithMarker.

See also
NDN Naming Conventions revision 1 (obsolete) https://named-data.net/wp-content/uploads/2014/08/ndn-tr-22-ndn-memo-naming-conventions.pdf
Parameters
marker1-byte octet of the marker
Returns
The integer number.
Exceptions
Errorif name component does not have the specified marker.
tlv::Errorif format does not follow NameComponentWithMarker specification.

Definition at line 283 of file name-component.cpp.

References isNumberWithMarker(), NDN_THROW, ndn::tlv::readNonNegativeInteger(), ndn::Block::value_begin(), ndn::Block::value_end(), and ndn::Block::value_size().

Referenced by toByteOffset(), toSegment(), toSequenceNumber(), toTimestamp(), and toVersion().

◆ toSegment()

uint64_t ndn::name::Component::toSegment ( ) const

◆ toByteOffset()

uint64_t ndn::name::Component::toByteOffset ( ) const

◆ toVersion()

uint64_t ndn::name::Component::toVersion ( ) const

◆ toTimestamp()

◆ toSequenceNumber()

uint64_t ndn::name::Component::toSequenceNumber ( ) const

◆ fromNumber()

Component ndn::name::Component::fromNumber ( uint64_t  number,
uint32_t  type = tlv::GenericNameComponent 
)
static

◆ fromNumberWithMarker()

Component ndn::name::Component::fromNumberWithMarker ( uint8_t  marker,
uint64_t  number 
)
static

Create a component encoded as NameComponentWithMarker.

NameComponentWithMarker is defined as:

NameComponentWithMarker ::= NAME-COMPONENT-TYPE TLV-LENGTH
                              Marker
                              includedNonNegativeInteger
Marker ::= BYTE
includedNonNegativeInteger ::= BYTE{1,2,4,8}
See also
NDN Naming Conventions revision 1 (obsolete) https://named-data.net/wp-content/uploads/2014/08/ndn-tr-22-ndn-memo-naming-conventions.pdf
Parameters
marker1-byte marker octet
numberThe non-negative number

Definition at line 366 of file name-component.cpp.

References Component(), ndn::tlv::GenericNameComponent, and ndn::encoding::Estimator::prependNonNegativeInteger().

Referenced by ndn::Name::appendNumberWithMarker(), fromByteOffset(), fromSegment(), fromSequenceNumber(), fromTimestamp(), and fromVersion().

◆ fromSegment()

Component ndn::name::Component::fromSegment ( uint64_t  segmentNo)
static

◆ fromByteOffset()

Component ndn::name::Component::fromByteOffset ( uint64_t  offset)
static

◆ fromVersion()

Component ndn::name::Component::fromVersion ( uint64_t  version)
static

◆ fromTimestamp()

◆ fromSequenceNumber()

Component ndn::name::Component::fromSequenceNumber ( uint64_t  seqNo)
static

◆ isGeneric()

bool ndn::name::Component::isGeneric ( ) const
inlinenoexcept

Check if the component is a GenericNameComponent.

See also
https://redmine.named-data.net/projects/ndn-tlv/wiki/NameComponentType

Definition at line 476 of file name-component.hpp.

References ndn::tlv::GenericNameComponent.

◆ isImplicitSha256Digest()

◆ fromImplicitSha256Digest() [1/2]

Component ndn::name::Component::fromImplicitSha256Digest ( ConstBufferPtr  digest)
static

Create ImplicitSha256DigestComponent component.

Deprecated:
Use Component(uint32_t, ConstBufferPtr)

Definition at line 434 of file name-component.cpp.

References ndn::tlv::ImplicitSha256DigestComponent, and nonstd::optional_lite::std11::move().

◆ fromImplicitSha256Digest() [2/2]

Component ndn::name::Component::fromImplicitSha256Digest ( span< const uint8_t >  digest)
static

Create ImplicitSha256DigestComponent component.

Deprecated:
Use Component(uint32_t, span<const uint8_t>)

Definition at line 440 of file name-component.cpp.

References ndn::tlv::ImplicitSha256DigestComponent.

◆ isParametersSha256Digest()

◆ fromParametersSha256Digest() [1/2]

Component ndn::name::Component::fromParametersSha256Digest ( ConstBufferPtr  digest)
static

Create ParametersSha256DigestComponent component.

Deprecated:
Use Component(uint32_t, ConstBufferPtr)

Definition at line 452 of file name-component.cpp.

References nonstd::optional_lite::std11::move(), and ndn::tlv::ParametersSha256DigestComponent.

◆ fromParametersSha256Digest() [2/2]

Component ndn::name::Component::fromParametersSha256Digest ( span< const uint8_t >  digest)
static

Create ParametersSha256DigestComponent component.

Deprecated:
Use Component(uint32_t, span<const uint8_t>)

Definition at line 458 of file name-component.cpp.

References ndn::tlv::ParametersSha256DigestComponent.

◆ isKeyword()

bool ndn::name::Component::isKeyword ( ) const
inlinenoexcept

Check if the component is a KeywordNameComponent.

See also
https://redmine.named-data.net/projects/ndn-tlv/wiki/NameComponentType

Definition at line 534 of file name-component.hpp.

References ndn::tlv::KeywordNameComponent, and NDN_CXX_NODISCARD.

◆ empty()

NDN_CXX_NODISCARD bool ndn::name::Component::empty ( ) const
inline

Definition at line 541 of file name-component.hpp.

Referenced by compare(), and ndn::KeyParams::KeyParams().

◆ equals()

bool ndn::name::Component::equals ( const Component other) const

Check if this is the same component as other.

Parameters
otherThe other Component to compare with
Returns
true if the components are equal, otherwise false.

Definition at line 466 of file name-component.cpp.

References ndn::Block::type(), ndn::Block::value_begin(), ndn::Block::value_end(), and ndn::Block::value_size().

◆ compare()

int ndn::name::Component::compare ( const Component other) const

Compare this to the other Component using NDN canonical ordering.

Parameters
otherThe other Component to compare with.
Return values
negativethis comes before other in canonical ordering
zerothis equals other
positivethis comes after other in canonical ordering
See also
https://named-data.net/doc/NDN-packet-spec/current/name.html#canonical-order

Definition at line 474 of file name-component.cpp.

References ndn::Block::data(), empty(), ndn::Block::hasWire(), ndn::Block::size(), ndn::Block::type(), ndn::Block::value(), and ndn::Block::value_size().

◆ getSuccessor()

Component ndn::name::Component::getSuccessor ( ) const

Get the successor of this name component.

The successor of a name component is defined as follows:

C represents the set of name components, and X,Y ∈ C.
Operator < is defined by canonical order on C.
Y is the successor of X, if (a) X < Y, and (b) ∄ Z ∈ C s.t. X < Z < Y.

In plain words, successor of a name component is the next possible name component.

Examples:

  • successor of sha256digest=0000000000000000000000000000000000000000000000000000000000000000 is sha256digest=0000000000000000000000000000000000000000000000000000000000000001.
  • successor of sha256digest=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff is params-sha256=0000000000000000000000000000000000000000000000000000000000000000.
  • successor of params-sha256=0000000000000000000000000000000000000000000000000000000000000000 is params-sha256=0000000000000000000000000000000000000000000000000000000000000001.
  • successor of params-sha256=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff is 3=....
  • successor of ... is %00.
  • successor of A is B.
  • successor of FF is %00%00.

Definition at line 499 of file name-component.cpp.

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

Referenced by ndn::security::v2::CertificateBundleFetcher::doFetch().

Friends And Related Function Documentation

◆ operator==

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

Definition at line 608 of file name-component.hpp.

◆ operator!=

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

Definition at line 614 of file name-component.hpp.

◆ operator<

bool operator< ( const Component lhs,
const Component rhs 
)
friend

Definition at line 620 of file name-component.hpp.

◆ operator<=

bool operator<= ( const Component lhs,
const Component rhs 
)
friend

Definition at line 626 of file name-component.hpp.

◆ operator>

bool operator> ( const Component lhs,
const Component rhs 
)
friend

Definition at line 632 of file name-component.hpp.

◆ operator>=

bool operator>= ( const Component lhs,
const Component rhs 
)
friend

Definition at line 638 of file name-component.hpp.

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const Component component 
)
friend

Definition at line 644 of file name-component.hpp.


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