Represents a Data packet. More...
#include <data.hpp>
Classes | |
class | Error |
Public Member Functions | |
Data (const Name &name=Name()) | |
Create a new Data with the given name and empty Content. More... | |
Data (const Block &wire) | |
Create from wire encoding. More... | |
template<encoding::Tag TAG> | |
size_t | wireEncode (EncodingImpl< TAG > &encoder, bool wantUnsignedPortionOnly=false) const |
Fast encoding or block size estimation. More... | |
const Block & | wireEncode (EncodingBuffer &encoder, const Block &signatureValue) const |
Finalize Data packet encoding with the specified SignatureValue. More... | |
const Block & | wireEncode () const |
Encode to a wire format. More... | |
void | wireDecode (const Block &wire) |
Decode from the wire format. More... | |
bool | hasWire () const |
Check if already has wire. More... | |
const Name & | getFullName () const |
Get full name including implicit digest. More... | |
const Name & | getName () const |
Get name. More... | |
Data & | setName (const Name &name) |
Set name. More... | |
const MetaInfo & | getMetaInfo () const |
Get MetaInfo. More... | |
Data & | setMetaInfo (const MetaInfo &metaInfo) |
Set MetaInfo. More... | |
const Block & | getContent () const |
Get Content. More... | |
Data & | setContent (const Block &block) |
Set Content from a block. More... | |
Data & | setContent (const uint8_t *value, size_t valueSize) |
Copy Content value from raw buffer. More... | |
Data & | setContent (const ConstBufferPtr &value) |
Set Content from wire buffer. More... | |
const Signature & | getSignature () const |
Get Signature. More... | |
Data & | setSignature (const Signature &signature) |
Set Signature. More... | |
Data & | setSignatureValue (const Block &value) |
Set SignatureValue. More... | |
uint32_t | getContentType () const |
Data & | setContentType (uint32_t type) |
const time::milliseconds & | getFreshnessPeriod () const |
Data & | setFreshnessPeriod (const time::milliseconds &freshnessPeriod) |
const name::Component & | getFinalBlockId () const |
Data & | setFinalBlockId (const name::Component &finalBlockId) |
Public Member Functions inherited from ndn::PacketBase | |
uint64_t | getCongestionMark () const |
get the value of the CongestionMark tag More... | |
void | setCongestionMark (uint64_t mark) |
set the CongestionMark tag to the specified value More... | |
Public Member Functions inherited from ndn::TagHost | |
template<typename T > | |
shared_ptr< T > | getTag () const |
get a tag item More... | |
template<typename T > | |
void | setTag (shared_ptr< T > tag) const |
set a tag item More... | |
template<typename T > | |
void | removeTag () const |
remove tag item More... | |
Protected Member Functions | |
void | resetWire () |
Clear wire encoding and cached FullName. More... | |
Create a new Data with the given name and empty Content.
make_shared
. Otherwise, .shared_from_this() will trigger undefined behavior. Definition at line 35 of file data.cpp.
Referenced by ndn::Data::Error::Error().
|
explicit |
Create from wire encoding.
make_shared
. Otherwise, .shared_from_this() will trigger undefined behavior. Definition at line 41 of file data.cpp.
References wireDecode().
size_t ndn::Data::wireEncode | ( | EncodingImpl< TAG > & | encoder, |
bool | wantUnsignedPortionOnly = false |
||
) | const |
Fast encoding or block size estimation.
encoder | EncodingEstimator or EncodingBuffer instance |
wantUnsignedPortionOnly | If true, only prepends Name, MetaInfo, Content, and SignatureInfo to encoder , but omit SignatureValue and outmost Type-Length of Data element. This is intended to be used with wireEncode(encoder, signatureValue). |
Error | SignatureBits are not provided and wantUnsignedPortionOnly is false. |
Definition at line 48 of file data.cpp.
References ndn::tlv::Data, getContent(), ndn::Signature::getInfo(), getMetaInfo(), getName(), ndn::Signature::getValue(), ndn::MetaInfo::wireEncode(), and ndn::Name::wireEncode().
Referenced by ndn::security::pib::PibSqlite3::addCertificate(), ndn::security::pib::detail::KeyImpl::getDefaultCertificate(), ndn::security::parse(), ndn::util::DummyClientFace::receive(), nfd::face::GenericLinkService::setOptions(), ndn::security::v2::KeyChain::sign(), and ndn::security::SafeBag::wireEncode().
const Block & ndn::Data::wireEncode | ( | EncodingBuffer & | encoder, |
const Block & | signatureValue | ||
) | const |
Finalize Data packet encoding with the specified SignatureValue.
encoder | EncodingBuffer containing Name, MetaInfo, Content, and SignatureInfo, but without SignatureValue or outmost Type-Length of Data element |
signatureValue | SignatureValue element |
This method is intended to be used in concert with Data::wireEncode(encoder, true)
Definition at line 93 of file data.cpp.
References ndn::tlv::Data, ndn::Block::size(), and wireDecode().
const Block & ndn::Data::wireEncode | ( | ) | const |
Encode to a wire format.
Definition at line 106 of file data.cpp.
References ndn::Block::hasWire(), and wireDecode().
Referenced by ndn::Data::Error::Error().
void ndn::Data::wireDecode | ( | const Block & | wire | ) |
Decode from the wire format.
Definition at line 122 of file data.cpp.
References ndn::Name::clear(), ndn::tlv::Content, ndn::Block::elements_end(), ndn::Block::find(), ndn::Block::get(), ndn::tlv::MetaInfo, ndn::tlv::Name, ndn::Block::parse(), ndn::Signature::setInfo(), ndn::Signature::setValue(), ndn::tlv::SignatureInfo, ndn::tlv::SignatureValue, ndn::MetaInfo::wireDecode(), and ndn::Name::wireDecode().
Referenced by Data(), ndn::Data::Error::Error(), ndn::Link::wireDecode(), ndn::security::SafeBag::wireDecode(), and wireEncode().
|
inline |
const Name & ndn::Data::getFullName | ( | ) | const |
Get full name including implicit digest.
Definition at line 148 of file data.cpp.
References ndn::Name::appendImplicitSha256Digest(), ndn::util::Sha256::computeDigest(), ndn::Name::empty(), ndn::Block::hasWire(), ndn::Block::size(), and ndn::Block::wire().
Referenced by nfd::cs::compareDataWithData(), nfd::cs::compareQueryWithData(), hasWire(), ndn::InMemoryStorage::insert(), and ndn::Interest::matchesData().
|
inline |
Get name.
Definition at line 121 of file data.hpp.
References setName().
Referenced by ndn::security::pib::CertificateContainer::add(), ndn::security::pib::PibMemory::addCertificate(), ndn::security::pib::PibSqlite3::addCertificate(), ndn::security::v2::KeyChain::addCertificate(), nfd::fw::asf::AsfStrategy::beforeSatisfyInterest(), nfd::fw::AccessStrategy::beforeSatisfyInterest(), nfd::fw::Strategy::beforeSatisfyInterest(), ndn::security::v2::Certificate::Certificate(), ndn::security::v2::ValidationPolicySimpleHierarchy::checkPolicy(), ndn::security::v2::validator_config::ValidationPolicyConfig::checkPolicy(), nfd::cs::compareDataWithData(), nfd::cs::compareQueryWithData(), ndn::security::v2::CertificateFetcherFromNetwork::doFetch(), ndn::security::v2::CertificateBundleFetcher::doFetch(), ndn::util::SegmentFetcher::fetch(), nfd::pit::Pit::findAllDataMatches(), nfd::Forwarder::Forwarder(), ndn::security::v2::Certificate::getIdentity(), ndn::security::v2::Certificate::getIssuerId(), ndn::security::v2::Certificate::getKeyId(), ndn::security::v2::Certificate::getKeyName(), ndn::security::v2::KeyChain::importSafeBag(), ndn::security::v2::CertificateCache::insert(), nfd::cs::Cs::insert(), ndn::Interest::matchesData(), ndn::security::v2::operator<<(), ndn::operator<<(), ndn::operator==(), ndn::Face::put(), ndn::security::pib::detail::KeyImpl::removeCertificate(), ndn::security::pib::detail::KeyImpl::setDefaultCertificate(), ndn::security::v2::KeyChain::setDefaultCertificate(), ndn::security::signingByCertificate(), ndn::util::NotificationSubscriberBase::stop(), ndn::security::v2::Validator::validate(), wireEncode(), and ndn::security::v2::DataValidationState::~DataValidationState().
Set name.
Definition at line 169 of file data.cpp.
References resetWire().
Referenced by getName(), and ndn::security::v2::parseLocatorUri().
|
inline |
Get MetaInfo.
Definition at line 135 of file data.hpp.
References getContent(), setContent(), and setMetaInfo().
Referenced by ndn::security::v2::CertificateBundleFetcher::doFetch(), ndn::util::SegmentFetcher::fetch(), ndn::operator<<(), ndn::operator==(), and wireEncode().
Set MetaInfo.
Definition at line 177 of file data.cpp.
References resetWire().
Referenced by getMetaInfo().
const Block & ndn::Data::getContent | ( | ) | const |
Get Content.
The Content value is accessible through value()/value_size() or value_begin()/value_end() methods of the Block class.
Definition at line 185 of file data.cpp.
References ndn::Block::hasWire().
Referenced by ndn::security::pib::PibMemory::addCertificate(), ndn::security::pib::PibSqlite3::addCertificate(), ndn::security::v2::KeyChain::addCertificate(), ndn::security::v2::Certificate::Certificate(), ndn::nfd::Controller::Controller(), ndn::security::v2::CertificateBundleFetcher::doFetch(), ndn::util::SegmentFetcher::fetch(), getMetaInfo(), ndn::security::v2::Certificate::getPublicKey(), ndn::operator<<(), ndn::operator==(), ndn::security::verifySignature(), ndn::Link::wireDecode(), and wireEncode().
Set Content from a block.
If block's TLV-TYPE is Content, it will be used directly as Data's Content element. If block's TLV-TYPE is not Content, it will be nested into a Content element.
Definition at line 194 of file data.cpp.
References ndn::tlv::Content, resetWire(), and ndn::Block::type().
Referenced by getMetaInfo(), ndn::Link::Link(), and ndn::security::v2::parseLocatorUri().
Data & ndn::Data::setContent | ( | const uint8_t * | value, |
size_t | valueSize | ||
) |
Copy Content value from raw buffer.
value | pointer to the first octet of the value |
valueSize | size of the raw buffer |
Definition at line 209 of file data.cpp.
References ndn::tlv::Content, ndn::encoding::makeBinaryBlock(), and resetWire().
Data & ndn::Data::setContent | ( | const ConstBufferPtr & | value | ) |
Set Content from wire buffer.
value | Content value, which does not need to be a TLV element |
Definition at line 217 of file data.cpp.
References ndn::tlv::Content, and resetWire().
|
inline |
Get Signature.
Definition at line 182 of file data.hpp.
References setSignature(), and setSignatureValue().
Referenced by ndn::security::v2::Certificate::getExtension(), ndn::security::v2::getKeyLocatorName(), ndn::security::v2::Certificate::getValidityPeriod(), ndn::security::v2::Certificate::isValid(), ndn::Interest::matchesData(), ndn::security::v2::operator<<(), ndn::operator<<(), ndn::operator==(), and ndn::security::parse().
Set Signature.
Definition at line 225 of file data.cpp.
References resetWire().
Referenced by getSignature(), and ndn::security::v2::KeyChain::sign().
Set SignatureValue.
Definition at line 233 of file data.cpp.
References resetWire(), and ndn::Signature::setValue().
Referenced by getSignature().
|
inline |
Definition at line 201 of file data.hpp.
References websocketpp::lib::asio::milliseconds(), and setContentType().
Referenced by ndn::security::v2::Certificate::Certificate(), and ndn::Link::wireDecode().
Data & ndn::Data::setContentType | ( | uint32_t | type | ) |
Definition at line 241 of file data.cpp.
References resetWire(), and ndn::MetaInfo::setType().
Referenced by ndn::security::v2::Certificate::Certificate(), getContentType(), ndn::Link::Link(), and ndn::security::v2::parseLocatorUri().
|
inline |
Definition at line 210 of file data.hpp.
References websocketpp::lib::asio::milliseconds(), and setFreshnessPeriod().
Referenced by ndn::security::v2::Certificate::Certificate(), and nfd::Forwarder::Forwarder().
Data & ndn::Data::setFreshnessPeriod | ( | const time::milliseconds & | freshnessPeriod | ) |
Definition at line 249 of file data.cpp.
References resetWire(), and ndn::MetaInfo::setFreshnessPeriod().
Referenced by getFreshnessPeriod(), and ndn::security::v2::parseLocatorUri().
|
inline |
Definition at line 219 of file data.hpp.
References ndn::operator<<(), ndn::operator==(), resetWire(), and setFinalBlockId().
Data & ndn::Data::setFinalBlockId | ( | const name::Component & | finalBlockId | ) |
Definition at line 257 of file data.cpp.
References resetWire(), and ndn::MetaInfo::setFinalBlockId().
Referenced by getFinalBlockId().
|
protected |
Clear wire encoding and cached FullName.
Definition at line 162 of file data.cpp.
References ndn::Name::clear(), and ndn::Block::reset().
Referenced by getFinalBlockId(), setContent(), setContentType(), setFinalBlockId(), setFreshnessPeriod(), setMetaInfo(), setName(), setSignature(), and setSignatureValue().