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... | |
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< EstimatorTag > (EncodingImpl< EstimatorTag > &, uint32_t, double) |
template size_t | prependDoubleBlock< EncoderTag > (EncodingImpl< EncoderTag > &, uint32_t, double) |
Block | makeDoubleBlock (uint32_t type, double value) |
Create a TLV element containing an IEEE 754 double-precision floating-point number. More... | |
double | readDouble (const Block &block) |
Read TLV-VALUE of a TLV element as an IEEE 754 double-precision floating-point number. 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_t< std::is_integral< R >::value, 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< R >::value, R > | 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 35 of file block-helpers.cpp.
Referenced by ndn::lp::EncodeHelper< TAG, TlvType, NonNegativeIntegerTag >::encode(), makeNonNegativeIntegerBlock(), ndn::nfd::FaceEventNotification::wireEncode(), ndn::nfd::FaceStatus::wireEncode(), ndn::nfd::CsInfo::wireEncode(), ndn::nfd::FaceQueryFilter::wireEncode(), ndn::nfd::ForwarderStatus::wireEncode(), ndn::lp::NackHeader::wireEncode(), ndn::SignatureInfo::wireEncode(), ndn::nfd::NextHopRecord::wireEncode(), ndn::lp::CachePolicy::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 | |||
) |
template size_t ndn::encoding::prependNonNegativeIntegerBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
uint64_t | |||
) |
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 52 of file block-helpers.cpp.
References ndn::encoding::Encoder::block(), and prependNonNegativeIntegerBlock().
Referenced by ndn::name::Component::fromNumber(), ns3::ndn::Producer::OnInterest(), ndn::PrefixAnnouncement::toData(), 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 64 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, NonNegativeIntegerTag >::decode(), ndn::PrefixAnnouncement::PrefixAnnouncement(), readNonNegativeIntegerAs(), ndn::name::Component::toNumber(), ndn::nfd::FaceEventNotification::wireDecode(), ndn::nfd::FaceStatus::wireDecode(), ndn::nfd::CsInfo::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 74 of file block-helpers.cpp.
Referenced by makeEmptyBlock(), and ndn::Interest::wireEncode().
template size_t ndn::encoding::prependEmptyBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | |||
) |
template size_t ndn::encoding::prependEmptyBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | |||
) |
Block ndn::encoding::makeEmptyBlock | ( | uint32_t | type | ) |
Create an empty TLV block.
type | TLV-TYPE number |
Definition at line 89 of file block-helpers.cpp.
References ndn::encoding::Encoder::block(), and prependEmptyBlock().
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 104 of file block-helpers.cpp.
Referenced by ndn::nfd::FaceEventNotification::wireEncode(), ndn::nfd::FaceStatus::wireEncode(), ndn::nfd::ChannelStatus::wireEncode(), ndn::nfd::FaceQueryFilter::wireEncode(), ndn::nfd::ForwarderStatus::wireEncode(), ndn::security::ValidityPeriod::wireEncode(), ndn::nfd::ControlParameters::wireEncode(), and ndn::security::v2::AdditionalDescription::wireEncode().
template size_t ndn::encoding::prependStringBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
const std::string & | |||
) |
template size_t ndn::encoding::prependStringBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
const std::string & | |||
) |
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 116 of file block-helpers.cpp.
References makeBinaryBlock().
Referenced by 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 122 of file block-helpers.cpp.
References ndn::Block::value(), and ndn::Block::value_size().
Referenced by ndn::nfd::ChannelStatus::wireDecode(), ndn::nfd::FaceEventNotification::wireDecode(), ndn::nfd::FaceStatus::wireDecode(), ndn::nfd::FaceQueryFilter::wireDecode(), ndn::mgmt::ControlResponse::wireDecode(), ndn::nfd::ForwarderStatus::wireDecode(), ndn::nfd::ControlParameters::wireDecode(), ndn::security::ValidityPeriod::wireDecode(), and ndn::security::v2::AdditionalDescription::wireDecode().
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 133 of file block-helpers.cpp.
Referenced by makeDoubleBlock(), and ndn::lp::GeoTag::wireEncode().
template size_t ndn::encoding::prependDoubleBlock< EstimatorTag > | ( | EncodingImpl< EstimatorTag > & | , |
uint32_t | , | ||
double | |||
) |
template size_t ndn::encoding::prependDoubleBlock< EncoderTag > | ( | EncodingImpl< EncoderTag > & | , |
uint32_t | , | ||
double | |||
) |
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 148 of file block-helpers.cpp.
References ndn::encoding::Encoder::block(), and prependDoubleBlock().
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 160 of file block-helpers.cpp.
References NDN_THROW, ndn::Block::value(), and ndn::Block::value_size().
Referenced by ndn::lp::GeoTag::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 181 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::name::detail::Sha256ComponentType::create(), ndn::mgmt::StatusDatasetContext::end(), makeBinaryBlock(), makeStringBlock(), ndn::Interest::setApplicationParameters(), 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 193 of file block-helpers.cpp.
References makeBinaryBlock().
std::enable_if_t<std::is_integral<R>::value, 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 72 of file block-helpers.hpp.
References NDN_THROW, readNonNegativeInteger(), ndn::to_string(), and ndn::Block::type().
std::enable_if_t<std::is_enum<R>::value, 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 91 of file block-helpers.hpp.
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 263 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 283 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 303 of file block-helpers.hpp.
References ndn::encoding::Encoder::block(), and prependNestedBlock().