Class for RDR-style metadata encoding/decoding. More...
#include <ndn-cxx/metadata-object.hpp>
Classes | |
class | Error |
Public Member Functions | |
MetadataObject () | |
Create an empty metadata object. More... | |
MetadataObject (const Data &data) | |
Construct a metadata object by decoding of the given Data packet. More... | |
const Name & | getVersionedName () const |
Return the versioned name (i.e., the name inside the content) More... | |
Data | makeData (Name discoveryInterestName, KeyChain &keyChain, const ndn::security::SigningInfo &si=security::SigningInfo(), std::optional< uint64_t > version=std::nullopt, time::milliseconds freshnessPeriod=10_ms) const |
Create a Data packet representing this metadata object. More... | |
MetadataObject & | setVersionedName (const Name &name) |
Set the versioned name. More... | |
Static Public Member Functions | |
static const name::Component & | getKeywordComponent () |
Returns the well-known keyword name component used for metadata objects (32=metadata ) More... | |
static bool | isValidName (const Name &name) |
Check whether name can be a valid metadata name. More... | |
static Interest | makeDiscoveryInterest (Name name) |
Generate a discovery interest packet based on name . More... | |
Class for RDR-style metadata encoding/decoding.
Realtime Data Retrieval (RDR) is a protocol for discovering the latest version number of a given data collection. The Interest and Data packets dealing with metadata (called "discovery interest" and "metadata object", respectively) follow a specific format.
There are two names in an RDR metadata object:
32=metadata
, as well as version and segment components.Definition at line 48 of file metadata-object.hpp.
|
default |
Create an empty metadata object.
|
explicit |
Construct a metadata object by decoding of the given Data packet.
tlv::Error | the Data is not a valid metadata packet |
Definition at line 30 of file metadata-object.cpp.
|
static |
Returns the well-known keyword name component used for metadata objects (32=metadata
)
Definition at line 79 of file metadata-object.cpp.
|
inline |
Return the versioned name (i.e., the name inside the content)
Definition at line 93 of file metadata-object.hpp.
|
static |
Check whether name
can be a valid metadata name.
Definition at line 86 of file metadata-object.cpp.
Data ndn::MetadataObject::makeData | ( | Name | discoveryInterestName, |
KeyChain & | keyChain, | ||
const ndn::security::SigningInfo & | si = security::SigningInfo() , |
||
std::optional< uint64_t > | version = std::nullopt , |
||
time::milliseconds | freshnessPeriod = 10_ms |
||
) | const |
Create a Data packet representing this metadata object.
discoveryInterestName | the discovery Interest's name, which must end with a keyword name component 32=metadata |
keyChain | KeyChain to sign the Data |
si | signing parameters |
version | version number of metadata packet; if nullopt, use current Unix timestamp (in milliseconds) as the version number |
freshnessPeriod | freshness period of metadata packet |
tlv::Error | discoveryInterestName is not valid |
Definition at line 50 of file metadata-object.cpp.
Generate a discovery interest packet based on name
.
name | prefix of data collection |
Definition at line 93 of file metadata-object.cpp.
MetadataObject & ndn::MetadataObject::setVersionedName | ( | const Name & | name | ) |
Set the versioned name.
Any metadata packet carries a versioned name in its payload where it shows the name and the latest version of a data stream. For instance, /ndn/test/v=2538020460
is a versioned name that shows the latest version of /ndn/test
.
Definition at line 72 of file metadata-object.cpp.