Represents a name component. More...
#include <name-component.hpp>
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 Block & | wireEncode () 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... | |
Block & | operator= (const Block &) |
Copy assignment operator. More... | |
Block (Block &&) noexcept | |
Move constructor. More... | |
Block & | operator= (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 Block & | get (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_container & | elements () 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, Block > | fromBuffer (ConstBufferPtr buffer, size_t offset) |
Try to parse Block from a wire buffer. More... | |
static NDN_CXX_NODISCARD std::tuple< bool, Block > | fromBuffer (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 Buffer > | m_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... | |
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.
|
explicit |
Construct a NameComponent of TLV-TYPE type
, using empty TLV-VALUE.
Error | the NameComponent is invalid (see ensureValid ). |
Definition at line 109 of file name-component.cpp.
Referenced by getSuccessor().
ndn::name::Component::Component | ( | const Block & | wire | ) |
Construct a NameComponent from block
.
Error | the NameComponent is invalid (see ensureValid ). |
This contructor enables implicit conversion from Block
.
Definition at line 115 of file name-component.cpp.
ndn::name::Component::Component | ( | uint32_t | type, |
ConstBufferPtr | buffer | ||
) |
Construct a NameComponent of TLV-TYPE type
, using TLV-VALUE from buffer
.
Error | the 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.
|
inlineexplicit |
Construct a GenericNameComponent, using TLV-VALUE from buffer
.
Error | the 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.
|
inline |
Construct a NameComponent of TLV-TYPE type
, copying TLV-VALUE from buffer
.
Definition at line 143 of file name-component.hpp.
|
inlineexplicit |
Construct a GenericNameComponent, copying TLV-VALUE from buffer
.
Definition at line 152 of file name-component.hpp.
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.
|
inline |
Construct a GenericNameComponent, copying count
bytes at value
as TLV-VALUE.
Definition at line 166 of file name-component.hpp.
|
inline |
Construct a NameComponent of TLV-TYPE type
, copying TLV-VALUE from a range.
Iterator | an InputIterator dereferencing to a one-octet value type. More efficient implementation is available when it is a RandomAccessIterator . |
type | the TLV-TYPE. |
first | beginning of the range. |
last | past-end of the range. |
Definition at line 180 of file name-component.hpp.
|
inline |
Construct a GenericNameComponent, copying TLV-VALUE from a range.
Definition at line 189 of file name-component.hpp.
|
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.
|
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.
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().
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().
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().
|
inlinestatic |
Decode NameComponent from a URI component.
The URI component is read from [input+beginOffset, input+endOffset)
range.
Error | URI component does not represent a valid NameComponent. |
Definition at line 238 of file name-component.hpp.
Referenced by fromEscapedString(), and ndn::Name::Name().
|
inlinestatic |
Decode NameComponent from a URI component.
Error | URI component does not represent a valid NameComponent. |
Definition at line 248 of file name-component.hpp.
References fromEscapedString().
|
static |
Decode NameComponent from a URI component.
Error | URI component does not represent a valid NameComponent. |
Definition at line 159 of file name-component.cpp.
References ndn::Block::find(), ndn::name::detail::ComponentTypeTable::findByUriPrefix(), ndn::tlv::GenericNameComponent, ndn::name::detail::getComponentTypeTable(), ndn::tlv::NameComponentMax, ndn::tlv::NameComponentMin, NDN_THROW, ndn::name::parseUriEscapedValue(), ndn::to_string(), and ndn::Block::type().
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.
Definition at line 183 of file name-component.cpp.
References ndn::name::chooseAltUri(), ndn::name::detail::ComponentTypeTable::get(), ndn::name::detail::getComponentTypeTable(), ndn::Block::type(), and ndn::name::detail::ComponentType::writeUri().
Referenced by toUri().
std::string ndn::name::Component::toUri | ( | UriFormat | format = UriFormat::DEFAULT | ) | const |
Convert *this by escaping characters according to the NDN URI format.
Definition at line 194 of file name-component.cpp.
References toUri().
bool ndn::name::Component::isNumber | ( | ) | const |
Check if the component is a nonNegativeInteger.
Definition at line 204 of file name-component.cpp.
References ndn::Block::value_size().
Referenced by isByteOffset(), isSegment(), isSequenceNumber(), isTimestamp(), isVersion(), and toNumber().
bool ndn::name::Component::isNumberWithMarker | ( | uint8_t | marker | ) | const |
Check if the component is a NameComponentWithMarker per NDN naming conventions rev1.
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().
bool ndn::name::Component::isVersion | ( | ) | const |
Check if the component is a version per NDN naming conventions.
Definition at line 218 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, isNumber(), isNumberWithMarker(), ndn::Block::type(), ndn::name::VERSION_MARKER, and ndn::tlv::VersionNameComponent.
Referenced by nfd::fw::Strategy::makeInstanceName().
bool ndn::name::Component::isSegment | ( | ) | const |
Check if the component is a segment number per NDN naming conventions.
Definition at line 225 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, isNumber(), isNumberWithMarker(), ndn::name::SEGMENT_MARKER, ndn::tlv::SegmentNameComponent, and ndn::Block::type().
bool ndn::name::Component::isByteOffset | ( | ) | const |
Check if the component is a byte offset per NDN naming conventions.
Definition at line 232 of file name-component.cpp.
References ndn::tlv::ByteOffsetNameComponent, ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, isNumber(), isNumberWithMarker(), ndn::name::SEGMENT_OFFSET_MARKER, and ndn::Block::type().
Referenced by isSegmentOffset().
|
inline |
Definition at line 313 of file name-component.hpp.
References isByteOffset().
bool ndn::name::Component::isTimestamp | ( | ) | const |
Check if the component is a timestamp per NDN naming conventions.
Definition at line 239 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, isNumber(), isNumberWithMarker(), ndn::name::TIMESTAMP_MARKER, ndn::tlv::TimestampNameComponent, and ndn::Block::type().
bool ndn::name::Component::isSequenceNumber | ( | ) | const |
Check if the component is a sequence number per NDN naming conventions.
Definition at line 246 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, isNumber(), isNumberWithMarker(), ndn::name::SEQUENCE_NUMBER_MARKER, ndn::tlv::SequenceNumNameComponent, and ndn::Block::type().
uint64_t ndn::name::Component::toNumber | ( | ) | const |
Interpret this name component as nonNegativeInteger.
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().
uint64_t ndn::name::Component::toNumberWithMarker | ( | uint8_t | marker | ) | const |
Interpret this name component as NameComponentWithMarker.
marker | 1-byte octet of the marker |
Error | if 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().
uint64_t ndn::name::Component::toVersion | ( | ) | const |
Interpret as version component using NDN naming conventions.
tlv::Error | not a Version component interpreted by the chosen convention(s). |
Definition at line 275 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, NDN_THROW, toNumber(), toNumberWithMarker(), ndn::Block::type(), ndn::name::VERSION_MARKER, and ndn::tlv::VersionNameComponent.
uint64_t ndn::name::Component::toSegment | ( | ) | const |
Interpret as segment number component using NDN naming conventions.
tlv::Error | not a Segment component interpreted by the chosen convention(s). |
Definition at line 287 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, NDN_THROW, ndn::name::SEGMENT_MARKER, ndn::tlv::SegmentNameComponent, toNumber(), toNumberWithMarker(), and ndn::Block::type().
uint64_t ndn::name::Component::toByteOffset | ( | ) | const |
Interpret as byte offset component using NDN naming conventions.
tlv::Error | not a ByteOffset component interpreted by the chosen convention(s). |
Definition at line 299 of file name-component.cpp.
References ndn::tlv::ByteOffsetNameComponent, ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, NDN_THROW, ndn::name::SEGMENT_OFFSET_MARKER, toNumber(), toNumberWithMarker(), and ndn::Block::type().
Referenced by toSegmentOffset().
|
inline |
Definition at line 388 of file name-component.hpp.
References toByteOffset().
time::system_clock::TimePoint ndn::name::Component::toTimestamp | ( | ) | const |
Interpret as timestamp component using NDN naming conventions.
tlv::Error | not a Timestamp component interpreted by the chosen convention(s). |
Definition at line 311 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, ndn::time::getUnixEpoch(), NDN_THROW, ndn::name::TIMESTAMP_MARKER, ndn::tlv::TimestampNameComponent, toNumber(), toNumberWithMarker(), ndn::Block::type(), and ndn::Block::value().
uint64_t ndn::name::Component::toSequenceNumber | ( | ) | const |
Interpret as sequence number component using NDN naming conventions.
tlv::Error | not a SequenceNumber component interpreted by the chosen convention(s). |
Definition at line 327 of file name-component.cpp.
References ndn::name::canDecodeMarkerConvention(), ndn::name::canDecodeTypedConvention(), ndn::tlv::GenericNameComponent, NDN_THROW, ndn::name::SEQUENCE_NUMBER_MARKER, ndn::tlv::SequenceNumNameComponent, toNumber(), toNumberWithMarker(), and ndn::Block::type().
|
static |
Create a component encoded as nonNegativeInteger.
number | The non-negative number |
type | TLV-TYPE |
Definition at line 341 of file name-component.cpp.
References ndn::encoding::makeNonNegativeIntegerBlock(), and ndn::Block::type().
Referenced by ndn::Name::appendNumber(), ndn::security::tpm::BackEnd::constructAsymmetricKeyName(), fromByteOffset(), fromSegment(), fromSequenceNumber(), fromTimestamp(), fromVersion(), ndn::name::detail::DecimalComponentType::parseAltUriValue(), and ndn::security::CommandInterestPreparer::prepareCommandInterestName().
|
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}
marker | 1-byte marker octet |
number | The 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().
|
static |
Create version component using NDN naming conventions.
Definition at line 367 of file name-component.cpp.
References fromNumber(), fromNumberWithMarker(), ndn::name::g_conventionEncoding, ndn::name::MARKER, ndn::name::VERSION_MARKER, and ndn::tlv::VersionNameComponent.
Referenced by ndn::Name::appendVersion().
|
static |
Create segment number component using NDN naming conventions.
Definition at line 375 of file name-component.cpp.
References fromNumber(), fromNumberWithMarker(), ndn::name::g_conventionEncoding, ndn::name::MARKER, ndn::name::SEGMENT_MARKER, and ndn::tlv::SegmentNameComponent.
Referenced by ndn::Name::appendSegment().
|
static |
Create byte offset component using NDN naming conventions.
Definition at line 383 of file name-component.cpp.
References ndn::tlv::ByteOffsetNameComponent, fromNumber(), fromNumberWithMarker(), ndn::name::g_conventionEncoding, ndn::name::MARKER, and ndn::name::SEGMENT_OFFSET_MARKER.
Referenced by ndn::Name::appendByteOffset(), and fromSegmentOffset().
|
inlinestatic |
Definition at line 470 of file name-component.hpp.
References fromByteOffset().
|
static |
Create sequence number component using NDN naming conventions.
Definition at line 391 of file name-component.cpp.
References fromNumber(), fromNumberWithMarker(), ndn::name::g_conventionEncoding, ndn::time::getUnixEpoch(), ndn::name::MARKER, ndn::name::TIMESTAMP_MARKER, ndn::tlv::TimestampNameComponent, and ndn::Block::value().
Referenced by ndn::Name::appendTimestamp().
|
static |
Create sequence number component using NDN naming conventions.
Definition at line 400 of file name-component.cpp.
References fromNumber(), fromNumberWithMarker(), ndn::name::g_conventionEncoding, ndn::name::MARKER, ndn::name::SEQUENCE_NUMBER_MARKER, and ndn::tlv::SequenceNumNameComponent.
Referenced by ndn::Name::appendSequenceNumber().
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().
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().
|
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().
|
static |
Create ImplicitSha256DigestComponent component.
Definition at line 428 of file name-component.cpp.
References ndn::name::detail::Sha256ComponentType::create(), and ndn::name::detail::getComponentType1().
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().
|
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().
|
static |
Create ParametersSha256DigestComponent component.
Definition at line 446 of file name-component.cpp.
References ndn::name::detail::Sha256ComponentType::create(), and ndn::name::detail::getComponentType2().
|
inline |
Definition at line 536 of file name-component.hpp.
References ndn::Block::value_size().
Referenced by compare(), equals(), and ndn::KeyParams::KeyParams().
bool ndn::name::Component::equals | ( | const Component & | other | ) | const |
Check if this is the same component as other.
other | The other Component to compare with |
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().
int ndn::name::Component::compare | ( | const Component & | other | ) | const |
Compare this to the other Component using NDN canonical ordering.
other | The other Component to compare with. |
negative | this comes before other in canonical ordering |
zero | this equals other |
positive | this comes after other in canonical ordering |
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().
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:
sha256digest=0000000000000000000000000000000000000000000000000000000000000000
is sha256digest=0000000000000000000000000000000000000000000000000000000000000001
.sha256digest=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
is params-sha256=0000000000000000000000000000000000000000000000000000000000000000
.params-sha256=0000000000000000000000000000000000000000000000000000000000000000
is params-sha256=0000000000000000000000000000000000000000000000000000000000000001
.params-sha256=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
is 3=...
....
is %00
.A
is B
.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().
Definition at line 607 of file name-component.hpp.
Definition at line 613 of file name-component.hpp.
Definition at line 618 of file name-component.hpp.
Definition at line 624 of file name-component.hpp.
Definition at line 631 of file name-component.hpp.
Definition at line 637 of file name-component.hpp.
|
friend |
Definition at line 642 of file name-component.hpp.