Namespaces | |
detail | |
Classes | |
class | Encoder |
Helper class to perform TLV encoding Interface of this class (mostly) matches interface of Estimator class. 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 Interface of this class (mostly) matches interface of Encoder class. More... | |
Typedefs | |
using | EncodingBuffer = EncodingImpl< EncoderTag > |
using | EncodingEstimator = EncodingImpl< EstimatorTag > |
Enumerations | |
enum | Tag { EncoderTag = true, EstimatorTag = false } |
Functions | |
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< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t, uint64_t) |
template size_t | prependNonNegativeIntegerBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t, uint64_t) |
Block | makeNonNegativeIntegerBlock (uint32_t type, uint64_t value) |
Create a TLV block containing a non-negative integer. More... | |
uint64_t | readNonNegativeInteger (const Block &block) |
Read a non-negative integer from a TLV element. More... | |
template<Tag TAG> | |
size_t | prependEmptyBlock (EncodingImpl< TAG > &encoder, uint32_t type) |
Prepend an empty TLV element. More... | |
template size_t | prependEmptyBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t) |
template size_t | prependEmptyBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t) |
Block | makeEmptyBlock (uint32_t type) |
Create an empty TLV block. More... | |
template<Tag TAG> | |
size_t | prependStringBlock (EncodingImpl< TAG > &encoder, uint32_t type, const std::string &value) |
Prepend a TLV element containing a string. More... | |
template size_t | prependStringBlock< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t, const std::string &) |
template size_t | prependStringBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t, const std::string &) |
Block | makeStringBlock (uint32_t type, const std::string &value) |
Create a TLV block containing a string. More... | |
std::string | readString (const Block &block) |
Read TLV-VALUE of a TLV element as a string. More... | |
Block | makeBinaryBlock (uint32_t type, const uint8_t *value, size_t length) |
Create a TLV block copying TLV-VALUE from raw buffer. More... | |
Block | makeBinaryBlock (uint32_t type, const char *value, size_t length) |
Create a TLV block copying TLV-VALUE from raw buffer. More... | |
template<typename R > | |
std::enable_if< std::is_integral< R >::value, R >::type | 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< std::is_enum< R >::value, R >::type | readNonNegativeIntegerAs (const Block &block) |
Read a non-negative integer from a TLV element and cast to the specified type. More... | |
template<class Iterator > | |
Block | makeBinaryBlock (uint32_t type, Iterator first, Iterator last) |
Create a TLV block copying TLV-VALUE from iterators. More... | |
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<class U > | |
Block | makeNestedBlock (uint32_t type, const U &value) |
Create a TLV block containing a nested TLV element. More... | |
using ndn::encoding::EncodingBuffer = typedef EncodingImpl<EncoderTag> |
Definition at line 38 of file encoding-buffer-fwd.hpp.
using ndn::encoding::EncodingEstimator = typedef EncodingImpl<EstimatorTag> |
Definition at line 39 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 30 of file encoding-buffer-fwd.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 31 of file block-helpers.cpp.
References prependNonNegativeIntegerBlock< EncoderTag >(), and prependNonNegativeIntegerBlock< EstimatorTag >().
Referenced by ndn::lp::EncodeHelper< TAG, TlvType, uint64_t >::encode(), makeNonNegativeIntegerBlock(), ndn::nfd::FaceEventNotification::wireEncode(), ndn::nfd::FaceStatus::wireEncode(), ndn::nfd::FaceQueryFilter::wireEncode(), ndn::nfd::ForwarderStatus::wireEncode(), ndn::Selectors::wireEncode(), ndn::lp::NackHeader::wireEncode(), ndn::SignatureInfo::wireEncode(), ndn::lp::CachePolicy::wireEncode(), ndn::nfd::NextHopRecord::wireEncode(), ndn::DelegationList::wireEncode(), ndn::Interest::wireEncode(), ndn::MetaInfo::wireEncode(), ndn::nfd::ControlParameters::wireEncode(), and ndn::nfd::Route::wireEncode().
template size_t ndn::encoding::prependNonNegativeIntegerBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
uint64_t | |||
) |
Referenced by prependNonNegativeIntegerBlock().
template size_t ndn::encoding::prependNonNegativeIntegerBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
uint64_t | |||
) |
Referenced by prependNonNegativeIntegerBlock().
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 48 of file block-helpers.cpp.
References ndn::encoding::Encoder::block(), and prependNonNegativeIntegerBlock().
Referenced by ndn::name::Component::fromNumber(), makeNestedBlock(), ns3::ndn::Producer::OnInterest(), and ndn::mgmt::ControlResponse::wireEncode().
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 60 of file block-helpers.cpp.
References ndn::tlv::readNonNegativeInteger(), ndn::Block::value_begin(), ndn::Block::value_end(), and ndn::Block::value_size().
Referenced by ndn::lp::DecodeHelper< TlvType, uint64_t >::decode(), makeNestedBlock(), readNonNegativeIntegerAs(), ndn::name::Component::toNumber(), ndn::nfd::FaceEventNotification::wireDecode(), ndn::nfd::FaceStatus::wireDecode(), ndn::nfd::FaceQueryFilter::wireDecode(), ndn::nfd::ForwarderStatus::wireDecode(), ndn::lp::NackHeader::wireDecode(), ndn::nfd::NextHopRecord::wireDecode(), ndn::DelegationList::wireDecode(), ndn::lp::CachePolicy::wireDecode(), ndn::MetaInfo::wireDecode(), ndn::Interest::wireDecode(), ndn::nfd::ControlParameters::wireDecode(), and ndn::nfd::Route::wireDecode().
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 70 of file block-helpers.cpp.
References prependEmptyBlock< EncoderTag >(), and prependEmptyBlock< EstimatorTag >().
Referenced by makeEmptyBlock(), readNonNegativeIntegerAs(), ndn::Selectors::wireEncode(), and ndn::Exclude::wireEncode().
template size_t ndn::encoding::prependEmptyBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | |||
) |
Referenced by prependEmptyBlock(), and readNonNegativeIntegerAs().
template size_t ndn::encoding::prependEmptyBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | |||
) |
Referenced by prependEmptyBlock(), and readNonNegativeIntegerAs().
Block ndn::encoding::makeEmptyBlock | ( | uint32_t | type | ) |
Create an empty TLV block.
type | TLV-TYPE number |
Definition at line 85 of file block-helpers.cpp.
References ndn::encoding::Encoder::block(), and prependEmptyBlock().
Referenced by makeNestedBlock(), and readNonNegativeIntegerAs().
size_t ndn::encoding::prependStringBlock | ( | EncodingImpl< TAG > & | encoder, |
uint32_t | type, | ||
const std::string & | 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 100 of file block-helpers.cpp.
References prependStringBlock< EncoderTag >(), and prependStringBlock< EstimatorTag >().
Referenced by readNonNegativeIntegerAs(), ndn::nfd::FaceEventNotification::wireEncode(), ndn::nfd::FaceStatus::wireEncode(), ndn::nfd::ChannelStatus::wireEncode(), ndn::nfd::FaceQueryFilter::wireEncode(), ndn::nfd::ForwarderStatus::wireEncode(), ndn::nfd::ControlParameters::wireEncode(), ndn::security::ValidityPeriod::wireEncode(), and ndn::security::v2::AdditionalDescription::wireEncode().
template size_t ndn::encoding::prependStringBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
const std::string & | |||
) |
Referenced by prependStringBlock(), and readNonNegativeIntegerAs().
template size_t ndn::encoding::prependStringBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
const std::string & | |||
) |
Referenced by prependStringBlock(), and readNonNegativeIntegerAs().
Block ndn::encoding::makeStringBlock | ( | uint32_t | type, |
const std::string & | value | ||
) |
Create a TLV block containing a string.
type | TLV-TYPE number |
value | string value, may contain NUL octets |
Definition at line 112 of file block-helpers.cpp.
References makeBinaryBlock().
Referenced by makeNestedBlock(), readNonNegativeIntegerAs(), and ndn::mgmt::ControlResponse::wireEncode().
std::string ndn::encoding::readString | ( | const Block & | block | ) |
Read TLV-VALUE of a TLV element as a string.
block | the TLV element |
Definition at line 118 of file block-helpers.cpp.
References ndn::Block::value(), and ndn::Block::value_size().
Referenced by makeNestedBlock(), readNonNegativeIntegerAs(), ndn::nfd::FaceEventNotification::wireDecode(), ndn::nfd::FaceStatus::wireDecode(), ndn::nfd::ChannelStatus::wireDecode(), ndn::nfd::FaceQueryFilter::wireDecode(), ndn::nfd::ForwarderStatus::wireDecode(), ndn::mgmt::ControlResponse::wireDecode(), ndn::nfd::ControlParameters::wireDecode(), ndn::security::ValidityPeriod::wireDecode(), and ndn::security::v2::AdditionalDescription::wireDecode().
Block ndn::encoding::makeBinaryBlock | ( | uint32_t | type, |
const uint8_t * | value, | ||
size_t | length | ||
) |
Create a TLV block copying TLV-VALUE from raw buffer.
type | TLV-TYPE number |
value | raw buffer as TLV-VALUE |
length | length of value buffer |
Definition at line 126 of file block-helpers.cpp.
References ndn::encoding::Encoder::block(), ndn::encoding::Encoder::prependByteArrayBlock(), and ndn::encoding::Estimator::prependByteArrayBlock().
Referenced by ndn::mgmt::StatusDatasetContext::append(), ndn::mgmt::StatusDatasetContext::end(), ndn::name::Component::fromImplicitSha256Digest(), makeBinaryBlock(), makeNestedBlock(), makeStringBlock(), readNonNegativeIntegerAs(), ndn::Data::setContent(), and ndn::KeyLocator::setKeyDigest().
Block ndn::encoding::makeBinaryBlock | ( | uint32_t | type, |
const char * | value, | ||
size_t | length | ||
) |
Create a TLV block copying TLV-VALUE from raw buffer.
type | TLV-TYPE number |
value | raw buffer as TLV-VALUE |
length | length of value buffer |
Definition at line 138 of file block-helpers.cpp.
References makeBinaryBlock().
std::enable_if<std::is_integral<R>::value, R>::type 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 72 of file block-helpers.hpp.
References readNonNegativeInteger(), ndn::to_string(), and ndn::Block::type().
Referenced by makeNestedBlock().
std::enable_if<std::is_enum<R>::value, R>::type 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 92 of file block-helpers.hpp.
References makeBinaryBlock(), makeEmptyBlock(), makeStringBlock(), prependEmptyBlock(), prependEmptyBlock< EncoderTag >(), prependEmptyBlock< EstimatorTag >(), prependStringBlock(), prependStringBlock< EncoderTag >(), prependStringBlock< EstimatorTag >(), and readString().
Block ndn::encoding::makeBinaryBlock | ( | uint32_t | type, |
Iterator | first, | ||
Iterator | last | ||
) |
Create a TLV block copying TLV-VALUE from iterators.
Iterator | an InputIterator dereferencable to an 1-octet type; faster implementation is available for RandomAccessIterator |
type | TLV-TYPE number |
first | begin iterator |
last | past-the-end iterator |
Definition at line 232 of file block-helpers.hpp.
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 252 of file block-helpers.hpp.
Referenced by makeNestedBlock(), ndn::nfd::StrategyChoice::wireEncode(), ndn::MetaInfo::wireEncode(), and ndn::nfd::ControlParameters::wireEncode().
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 272 of file block-helpers.hpp.
References ndn::encoding::Encoder::block(), makeBinaryBlock(), makeEmptyBlock(), makeNonNegativeIntegerBlock(), makeStringBlock(), prependNestedBlock(), readNonNegativeInteger(), readNonNegativeIntegerAs(), and readString().