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, using empty TLV-VALUE. More...
 
 Component (const Block &wire)
 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, const Buffer &buffer)
 Construct a NameComponent of TLV-TYPE type, copying TLV-VALUE from buffer. More...
 
 Component (const Buffer &buffer)
 Construct a GenericNameComponent, copying 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 isVersion () const
 Check if the component is a version per NDN naming conventions. 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 isSegmentOffset () const
 
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 nonNegativeInteger. More...
 
uint64_t toNumberWithMarker (uint8_t marker) const
 Interpret this name component as NameComponentWithMarker. More...
 
uint64_t toVersion () const
 Interpret as version component using NDN naming conventions. 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 toSegmentOffset () const
 
time::system_clock::TimePoint 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
 Check if the component is GenericComponent. More...
 
bool isImplicitSha256Digest () const
 Check if the component is ImplicitSha256DigestComponent. More...
 
bool isParametersSha256Digest () const
 Check if the component is ParametersSha256DigestComponent. 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 (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, Buffer::const_iterator begin, Buffer::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 (const uint8_t *buf, size_t bufSize)
 Parse Block from a raw buffer. 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...
 
NDN_CXX_NODISCARD bool empty () const noexcept
 Check if the Block is empty. 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...
 
Buffer::const_iterator begin () const
 Get begin iterator of encoded wire. More...
 
Buffer::const_iterator end () const
 Get end iterator of encoded wire. More...
 
const uint8_t * wire () const
 Return a raw pointer to the beginning of the encoded wire. More...
 
size_t size () const
 Return the size of the encoded wire, i.e. More...
 
ConstBufferPtr getBuffer () const
 Get underlying buffer. More...
 
uint32_t type () const
 Return the TLV-TYPE of the Block. More...
 
bool hasValue () const noexcept
 Check if the Block has a non-empty TLV-VALUE. More...
 
Buffer::const_iterator value_begin () const
 Get begin iterator of TLV-VALUE. More...
 
Buffer::const_iterator value_end () const
 Get end iterator of TLV-VALUE. More...
 
const uint8_t * value () const noexcept
 Return a raw pointer to the beginning of TLV-VALUE. More...
 
size_t value_size () const noexcept
 Return the size of TLV-VALUE, aka TLV-LENGTH. More...
 
Block blockFromValue () const
 
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...
 
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 fromVersion (uint64_t version)
 Create version component using NDN naming conventions. More...
 
static Component fromSegment (uint64_t segmentNo)
 Create segment number component using NDN naming conventions. More...
 
static Component fromByteOffset (uint64_t offset)
 Create byte offset component using NDN naming conventions. More...
 
static Component fromSegmentOffset (uint64_t offset)
 
static Component fromTimestamp (const time::system_clock::TimePoint &timePoint)
 Create sequence number component using NDN naming conventions. More...
 
static Component fromSequenceNumber (uint64_t seqNo)
 Create sequence number component using NDN naming conventions. More...
 
static Component fromImplicitSha256Digest (ConstBufferPtr digest)
 Create ImplicitSha256DigestComponent component. More...
 
static Component fromImplicitSha256Digest (const uint8_t *digest, size_t digestSize)
 Create ImplicitSha256DigestComponent component. More...
 
static Component fromParametersSha256Digest (ConstBufferPtr digest)
 Create ParametersSha256DigestComponent component. More...
 
static Component fromParametersSha256Digest (const uint8_t *digest, size_t digestSize)
 Create ParametersSha256DigestComponent component. More...
 
- Static Public Member Functions inherited from ndn::Block
static Block fromStream (std::istream &is)
 Parse Block from an input stream. More...
 
static NDN_CXX_NODISCARD std::tuple< bool, BlockfromBuffer (ConstBufferPtr buffer, size_t offset)
 Try to parse Block from a wire buffer. More...
 
static NDN_CXX_NODISCARD std::tuple< bool, BlockfromBuffer (const uint8_t *buf, size_t bufSize)
 Try to parse Block from a raw buffer. 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 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 Block base class, they must not be used, because the enclosing Name would not be updated correctly.

Definition at line 93 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, using empty TLV-VALUE.

Exceptions
Errorthe NameComponent is invalid (see ensureValid).

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

Referenced by getSuccessor().

◆ Component() [2/12]

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

Construct a NameComponent from block.

Exceptions
Errorthe NameComponent is invalid (see ensureValid).

This contructor enables implicit conversion from Block.

Definition at line 115 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 (see ensureValid).

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 121 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 (see ensureValid).

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 135 of file name-component.hpp.

◆ Component() [5/12]

ndn::name::Component::Component ( uint32_t  type,
const Buffer buffer 
)
inline

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

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

◆ Component() [6/12]

ndn::name::Component::Component ( const Buffer buffer)
inlineexplicit

Construct a GenericNameComponent, copying TLV-VALUE from buffer.

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

◆ Component() [7/12]

ndn::name::Component::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.

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

◆ 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.

Definition at line 166 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 180 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 189 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 133 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 138 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

Fast encoding or block size estimation.

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

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

◆ wireEncode() [2/2]

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

Encode to a wire format.

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

References ndn::Block::hasWire().

◆ wireDecode()

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

Decode from the wire format.

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

References ndn::Block::wire().

◆ 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 238 of file name-component.hpp.

Referenced by fromEscapedString(), and 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 248 of file name-component.hpp.

References fromEscapedString().

◆ fromEscapedString() [3/3]

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

◆ toUri() [1/2]

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

◆ 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 194 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: https://named-data.net/wp-content/uploads/2014/08/ndn-tr-22-ndn-memo-naming-conventions.pdf

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

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

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

◆ isVersion()

◆ isSegment()

◆ isByteOffset()

◆ isSegmentOffset()

bool ndn::name::Component::isSegmentOffset ( ) const
inline
Deprecated:
use isByteOffset

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

References isByteOffset().

◆ isTimestamp()

◆ isSequenceNumber()

◆ toNumber()

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

Interpret this name component as nonNegativeInteger.

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

Definition at line 255 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 NameComponentWithMarker.

See also
NDN Naming Conventions revision 1: 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::Error if format does not follow NameComponentWithMarker specification.

Definition at line 264 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().

◆ toVersion()

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

◆ toSegment()

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

◆ toByteOffset()

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

◆ toSegmentOffset()

uint64_t ndn::name::Component::toSegmentOffset ( ) const
inline
Deprecated:
use toByteOffset

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

References toByteOffset().

◆ toTimestamp()

◆ toSequenceNumber()

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

◆ fromNumber()

◆ 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: 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 347 of file name-component.cpp.

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

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

◆ fromVersion()

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

◆ fromSegment()

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

◆ fromByteOffset()

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

◆ fromSegmentOffset()

static Component ndn::name::Component::fromSegmentOffset ( uint64_t  offset)
inlinestatic
Deprecated:
use fromByteOffset

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

References fromByteOffset().

◆ fromTimestamp()

◆ fromSequenceNumber()

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

◆ isGeneric()

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

Check if the component is GenericComponent.

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

References ndn::tlv::GenericNameComponent, and ndn::Block::type().

◆ isImplicitSha256Digest()

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

Check if the component is ImplicitSha256DigestComponent.

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

References ndn::name::detail::getComponentType1(), and ndn::name::detail::Sha256ComponentType::match().

Referenced by ndn::Interest::matchesData().

◆ fromImplicitSha256Digest() [1/2]

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

Create ImplicitSha256DigestComponent component.

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

References ndn::name::detail::Sha256ComponentType::create(), and ndn::name::detail::getComponentType1().

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

◆ fromImplicitSha256Digest() [2/2]

Component ndn::name::Component::fromImplicitSha256Digest ( const uint8_t *  digest,
size_t  digestSize 
)
static

Create ImplicitSha256DigestComponent component.

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

References ndn::name::detail::Sha256ComponentType::create(), and ndn::name::detail::getComponentType1().

◆ isParametersSha256Digest()

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

Check if the component is ParametersSha256DigestComponent.

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

References ndn::name::detail::getComponentType2(), and ndn::name::detail::Sha256ComponentType::match().

◆ fromParametersSha256Digest() [1/2]

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

Create ParametersSha256DigestComponent component.

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

References ndn::name::detail::Sha256ComponentType::create(), and ndn::name::detail::getComponentType2().

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

◆ fromParametersSha256Digest() [2/2]

Component ndn::name::Component::fromParametersSha256Digest ( const uint8_t *  digest,
size_t  digestSize 
)
static

Create ParametersSha256DigestComponent component.

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

References ndn::name::detail::Sha256ComponentType::create(), and ndn::name::detail::getComponentType2().

◆ empty()

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

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

References ndn::Block::value_size().

Referenced by compare(), equals(), 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 454 of file name-component.cpp.

References empty(), 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 463 of file name-component.cpp.

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

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

◆ 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 488 of file name-component.cpp.

References Component(), ndn::name::detail::ComponentTypeTable::get(), ndn::name::detail::getComponentTypeTable(), ndn::name::detail::ComponentType::getMinValue(), ndn::name::detail::ComponentType::getSuccessor(), 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 607 of file name-component.hpp.

◆ operator!=

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

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

◆ operator<

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

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

◆ operator<=

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

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

◆ operator>

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

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

◆ operator>=

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

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

◆ operator<<

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

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


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