Namespaces | |
detail | |
Classes | |
class | Encoder |
Helper class to perform TLV encoding. More... | |
class | EncodingImpl |
class | EncodingImpl< EncoderTag > |
EncodingImpl specialization for actual TLV encoding. More... | |
class | EncodingImpl< EstimatorTag > |
EncodingImpl specialization for TLV size estimation. More... | |
class | Estimator |
Helper class to estimate size of TLV encoding. More... | |
Typedefs | |
using | EncodingBuffer = EncodingImpl< EncoderTag > |
using | EncodingEstimator = EncodingImpl< EstimatorTag > |
Enumerations | |
enum | Tag { EncoderTag = true , EstimatorTag = false } |
Functions | |
template<class Iterator > | |
Block | makeBinaryBlock (uint32_t type, Iterator first, Iterator last) |
Create a TLV block copying TLV-VALUE from iterators. More... | |
Block | makeBinaryBlock (uint32_t type, span< const uint8_t > value) |
Create a TLV block copying the TLV-VALUE from a byte range. More... | |
Block | makeDoubleBlock (uint32_t type, double value) |
Create a TLV element containing an IEEE 754 double-precision floating-point number. More... | |
Block | makeEmptyBlock (uint32_t type) |
Create an empty TLV block. More... | |
template<class U > | |
Block | makeNestedBlock (uint32_t type, const U &value) |
Create a TLV block containing a nested TLV element. More... | |
template<class I > | |
Block | makeNestedBlock (uint32_t type, I first, I last) |
Create a TLV block containing a sequence of nested TLV elements. More... | |
Block | makeNonNegativeIntegerBlock (uint32_t type, uint64_t value) |
Create a TLV block containing a non-negative integer. More... | |
Block | makeStringBlock (uint32_t type, std::string_view value) |
Create a TLV block containing a string. More... | |
template<Tag TAG> | |
size_t | prependBinaryBlock (EncodingImpl< TAG > &encoder, uint32_t type, span< const uint8_t > value) |
Prepend a TLV element containing a sequence of raw bytes. More... | |
template size_t | prependBinaryBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t, span< const uint8_t >) |
template size_t | prependBinaryBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t, span< const uint8_t >) |
template<Tag TAG> | |
size_t | prependBlock (EncodingImpl< TAG > &encoder, const Block &block) |
Prepend a TLV element. More... | |
template size_t | prependBlock< EncoderTag > (EncodingImpl< EncoderTag > &, const Block &) |
template size_t | prependBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, const Block &) |
template<Tag TAG> | |
size_t | prependDoubleBlock (EncodingImpl< TAG > &encoder, uint32_t type, double value) |
Prepend a TLV element containing an IEEE 754 double-precision floating-point number. More... | |
template size_t | prependDoubleBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t, double) |
template size_t | prependDoubleBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t, double) |
template<Tag TAG> | |
size_t | prependEmptyBlock (EncodingImpl< TAG > &encoder, uint32_t type) |
Prepend an empty TLV element. More... | |
template size_t | prependEmptyBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t) |
template size_t | prependEmptyBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t) |
template<Tag TAG, class U > | |
size_t | prependNestedBlock (EncodingImpl< TAG > &encoder, uint32_t type, const U &value) |
Prepend a TLV element containing a nested TLV element. More... | |
template<Tag TAG, class I > | |
size_t | prependNestedBlock (EncodingImpl< TAG > &encoder, uint32_t type, I first, I last) |
Prepend a TLV element containing a sequence of nested TLV elements. More... | |
template<Tag TAG> | |
size_t | prependNonNegativeIntegerBlock (EncodingImpl< TAG > &encoder, uint32_t type, uint64_t value) |
Prepend a TLV element containing a non-negative integer. More... | |
template size_t | prependNonNegativeIntegerBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t, uint64_t) |
template size_t | prependNonNegativeIntegerBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t, uint64_t) |
template<Tag TAG> | |
size_t | prependStringBlock (EncodingImpl< TAG > &encoder, uint32_t type, std::string_view value) |
Prepend a TLV element containing a string. More... | |
template size_t | prependStringBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t, std::string_view) |
template size_t | prependStringBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t, std::string_view) |
double | readDouble (const Block &block) |
Read TLV-VALUE of a TLV element as an IEEE 754 double-precision floating-point number. More... | |
uint64_t | readNonNegativeInteger (const Block &block) |
Read a non-negative integer from a TLV element. More... | |
template<typename R > | |
std::enable_if_t< std::is_integral_v< R >, R > | readNonNegativeIntegerAs (const Block &block) |
Read a non-negative integer from a TLV element and cast to the specified type. More... | |
template<typename R > | |
std::enable_if_t< std::is_enum_v< R >, R > | readNonNegativeIntegerAs (const Block &block) |
Read a non-negative integer from a TLV element and cast to the specified type. More... | |
std::string | readString (const Block &block) |
Read the TLV-VALUE of a TLV element as a string. More... | |
using ndn::encoding::EncodingBuffer = typedef EncodingImpl<EncoderTag> |
Definition at line 36 of file encoding-buffer-fwd.hpp.
using ndn::encoding::EncodingEstimator = typedef EncodingImpl<EstimatorTag> |
Definition at line 37 of file encoding-buffer-fwd.hpp.
enum ndn::encoding::Tag |
Enumerator | |
---|---|
EncoderTag | Tag for EncodingImpl to indicate that Encoder is requested. |
EstimatorTag | Tag for EncodingImpl to indicate that Estimator is requested. |
Definition at line 28 of file encoding-buffer-fwd.hpp.
Block ndn::encoding::makeBinaryBlock | ( | uint32_t | type, |
Iterator | first, | ||
Iterator | last | ||
) |
Create a TLV block copying TLV-VALUE from iterators.
Iterator | an InputIterator dereferenceable to a 1-octet type; a faster implementation is automatically selected for RandomAccessIterator |
type | TLV-TYPE number |
first | begin iterator |
last | past-the-end iterator |
Definition at line 235 of file block-helpers.hpp.
Block ndn::encoding::makeBinaryBlock | ( | uint32_t | type, |
span< const uint8_t > | value | ||
) |
Create a TLV block copying the TLV-VALUE from a byte range.
type | TLV-TYPE number |
value | range of bytes to use as TLV-VALUE |
Definition at line 157 of file block-helpers.cpp.
Block ndn::encoding::makeDoubleBlock | ( | uint32_t | type, |
double | value | ||
) |
Create a TLV element containing an IEEE 754 double-precision floating-point number.
type | TLV-TYPE number |
value | floating point number value |
Definition at line 117 of file block-helpers.cpp.
Block ndn::encoding::makeEmptyBlock | ( | uint32_t | type | ) |
Create an empty TLV block.
type | TLV-TYPE number |
Definition at line 47 of file block-helpers.cpp.
Block ndn::encoding::makeNestedBlock | ( | uint32_t | type, |
const U & | value | ||
) |
Create a TLV block containing a nested TLV element.
U | type that satisfies WireEncodableWithEncodingBuffer concept |
type | TLV-TYPE number for outer TLV element |
value | an object to be encoded as inner TLV element |
Definition at line 324 of file block-helpers.hpp.
Block ndn::encoding::makeNestedBlock | ( | uint32_t | type, |
I | first, | ||
I | last | ||
) |
Create a TLV block containing a sequence of nested TLV elements.
I | bidirectional iterator to a type that satisfies WireEncodableWithEncodingBuffer concept |
type | TLV-TYPE number for outer TLV element |
first | begin iterator to inner TLV elements |
last | past-end iterator to inner TLV elements |
Definition at line 370 of file block-helpers.hpp.
Block ndn::encoding::makeNonNegativeIntegerBlock | ( | uint32_t | type, |
uint64_t | value | ||
) |
Create a TLV block containing a non-negative integer.
type | TLV-TYPE number |
value | non-negative integer value |
Definition at line 78 of file block-helpers.cpp.
|
inline |
Create a TLV block containing a string.
type | TLV-TYPE number |
value | string value, may contain NUL octets |
Definition at line 268 of file block-helpers.hpp.
size_t ndn::encoding::prependBinaryBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type, | ||
span< const uint8_t > | value | ||
) |
Prepend a TLV element containing a sequence of raw bytes.
encoder | an EncodingBuffer or EncodingEstimator |
type | TLV-TYPE number |
value | range of bytes to use as TLV-VALUE |
Definition at line 141 of file block-helpers.cpp.
template size_t ndn::encoding::prependBinaryBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
span< const uint8_t > | |||
) |
template size_t ndn::encoding::prependBinaryBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
span< const uint8_t > | |||
) |
size_t ndn::encoding::prependBlock | ( | EncodingImpl< TAG > & | encoder, |
const Block & | block | ||
) |
Prepend a TLV element.
encoder | an EncodingBuffer or EncodingEstimator |
block | the TLV element |
Definition at line 193 of file block-helpers.cpp.
template size_t ndn::encoding::prependBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
const Block & | |||
) |
template size_t ndn::encoding::prependBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
const Block & | |||
) |
size_t ndn::encoding::prependDoubleBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type, | ||
double | value | ||
) |
Prepend a TLV element containing an IEEE 754 double-precision floating-point number.
encoder | an EncodingBuffer or EncodingEstimator |
type | TLV-TYPE number |
value | a floating point number value |
Definition at line 102 of file block-helpers.cpp.
template size_t ndn::encoding::prependDoubleBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
double | |||
) |
template size_t ndn::encoding::prependDoubleBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
double | |||
) |
size_t ndn::encoding::prependEmptyBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type | ||
) |
Prepend an empty TLV element.
encoder | an EncodingBuffer or EncodingEstimator |
type | TLV-TYPE number |
The TLV element has zero-length TLV-VALUE.
Definition at line 32 of file block-helpers.cpp.
template size_t ndn::encoding::prependEmptyBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | |||
) |
template size_t ndn::encoding::prependEmptyBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | |||
) |
size_t ndn::encoding::prependNestedBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type, | ||
const U & | value | ||
) |
Prepend a TLV element containing a nested TLV element.
U | type that satisfies WireEncodableWithEncodingBuffer concept |
encoder | an EncodingBuffer or EncodingEstimator |
type | TLV-TYPE number for outer TLV element |
value | an object to be encoded as inner TLV element |
Definition at line 306 of file block-helpers.hpp.
size_t ndn::encoding::prependNestedBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type, | ||
I | first, | ||
I | last | ||
) |
Prepend a TLV element containing a sequence of nested TLV elements.
I | bidirectional iterator to a type that satisfies WireEncodableWithEncodingBuffer concept |
encoder | an EncodingBuffer or EncodingEstimator |
type | TLV-TYPE number for outer TLV element |
first | begin iterator to inner TLV elements |
last | past-end iterator to inner TLV elements |
Definition at line 344 of file block-helpers.hpp.
size_t ndn::encoding::prependNonNegativeIntegerBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type, | ||
uint64_t | value | ||
) |
Prepend a TLV element containing a non-negative integer.
encoder | an EncodingBuffer or EncodingEstimator |
type | TLV-TYPE number |
value | non-negative integer value |
Definition at line 62 of file block-helpers.cpp.
template size_t ndn::encoding::prependNonNegativeIntegerBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
uint64_t | |||
) |
template size_t ndn::encoding::prependNonNegativeIntegerBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
uint64_t | |||
) |
size_t ndn::encoding::prependStringBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type, | ||
std::string_view | value | ||
) |
Prepend a TLV element containing a string.
encoder | an EncodingBuffer or EncodingEstimator |
type | TLV-TYPE number |
value | string value, may contain NUL octets |
Definition at line 172 of file block-helpers.cpp.
template size_t ndn::encoding::prependStringBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
std::string_view | |||
) |
template size_t ndn::encoding::prependStringBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
std::string_view | |||
) |
double ndn::encoding::readDouble | ( | const Block & | block | ) |
Read TLV-VALUE of a TLV element as an IEEE 754 double-precision floating-point number.
block | the TLV element |
Definition at line 129 of file block-helpers.cpp.
uint64_t ndn::encoding::readNonNegativeInteger | ( | const Block & | block | ) |
Read a non-negative integer from a TLV element.
block | the TLV element |
tlv::Error | block does not contain a non-negative integer |
Definition at line 90 of file block-helpers.cpp.
std::enable_if_t<std::is_integral_v<R>, R> ndn::encoding::readNonNegativeIntegerAs | ( | const Block & | block | ) |
Read a non-negative integer from a TLV element and cast to the specified type.
R | result type, must be an integral type |
block | the TLV element |
tlv::Error | block does not contain a valid non-negative integer or the number cannot be represented in R |
Definition at line 96 of file block-helpers.hpp.
std::enable_if_t<std::is_enum_v<R>, R> ndn::encoding::readNonNegativeIntegerAs | ( | const Block & | block | ) |
Read a non-negative integer from a TLV element and cast to the specified type.
R | result type, must be an enumeration type |
block | the TLV element |
tlv::Error | block does not contain a valid non-negative integer or the number cannot be represented in R |
Definition at line 115 of file block-helpers.hpp.
std::string ndn::encoding::readString | ( | const Block & | block | ) |
Read the TLV-VALUE of a TLV element as a string.
block | the TLV element |
Definition at line 184 of file block-helpers.cpp.