A prefix announcement object that represents an application's intent of registering a prefix toward itself. More...
#include <prefix-announcement.hpp>
Classes | |
class | Error |
Public Member Functions | |
PrefixAnnouncement () | |
Construct an empty prefix announcement. More... | |
PrefixAnnouncement (Data data) | |
Decode a prefix announcement from Data. More... | |
const optional< Data > & | getData () const |
Get the Data representing the prefix announcement, if available. More... | |
const Data & | toData (KeyChain &keyChain, const ndn::security::SigningInfo &si=security::SigningInfo(), optional< uint64_t > version=nullopt) const |
Create a Data packet representing the prefix announcement, if it does not exist. More... | |
const Name & | getAnnouncedName () const |
Return announced name. More... | |
PrefixAnnouncement & | setAnnouncedName (Name name) |
Set announced name. More... | |
time::milliseconds | getExpiration () const |
Return relative expiration period. More... | |
PrefixAnnouncement & | setExpiration (time::milliseconds expiration) |
Set relative expiration period. More... | |
optional< security::ValidityPeriod > | getValidityPeriod () const |
Return absolute validity period. More... | |
PrefixAnnouncement & | setValidityPeriod (optional< security::ValidityPeriod > validity) |
Set absolute validity period. More... | |
Static Public Member Functions | |
static const name::Component & | getKeywordComponent () |
Returns the well-known keyword name component used for prefix announcements (32=PA ) More... | |
A prefix announcement object that represents an application's intent of registering a prefix toward itself.
Definition at line 36 of file prefix-announcement.hpp.
|
default |
Construct an empty prefix announcement.
|
explicit |
Decode a prefix announcement from Data.
tlv::Error | the Data is not a prefix announcement. |
Definition at line 32 of file prefix-announcement.cpp.
References ndn::tlv::ContentType_PrefixAnn, ndn::Block::elements(), ndn::Block::elements_end(), ndn::tlv::nfd::ExpirationPeriod, ndn::Block::find(), ndn::Block::get(), getKeywordComponent(), ndn::Name::getPrefix(), ndn::tlv::isCriticalType(), NDN_THROW, ndn::Block::parse(), ndn::encoding::readNonNegativeInteger(), ndn::Name::size(), ndn::to_string(), and ndn::tlv::ValidityPeriod.
|
inline |
Get the Data representing the prefix announcement, if available.
Definition at line 62 of file prefix-announcement.hpp.
References ndn::security::v2::KeyChain, nonstd::optional_lite::nullopt, toData(), and websocketpp::http::parser::state::version.
Referenced by nfd::RibManager::slAnnounce().
const Data & ndn::PrefixAnnouncement::toData | ( | KeyChain & | keyChain, |
const ndn::security::SigningInfo & | si = security::SigningInfo() , |
||
optional< uint64_t > | version = nullopt |
||
) | const |
Create a Data packet representing the prefix announcement, if it does not exist.
keyChain | KeyChain to sign the Data. |
si | signing parameters. |
version | version number in Data name; if nullopt, use current Unix timestamp (in milliseconds) as the version number. |
Definition at line 70 of file prefix-announcement.cpp.
References ndn::Name::append(), ndn::Name::appendSegment(), ndn::Name::appendVersion(), ndn::tlv::Content, ndn::tlv::ContentType_PrefixAnn, ndn::Block::encode(), ndn::tlv::nfd::ExpirationPeriod, getKeywordComponent(), ndn::encoding::makeNonNegativeIntegerBlock(), ndn::time::system_clock::now(), ndn::Block::push_back(), and ndn::time::toUnixTimestamp().
Referenced by getData().
|
inline |
Return announced name.
Definition at line 82 of file prefix-announcement.hpp.
References setAnnouncedName().
Referenced by ndn::operator<<(), ndn::operator==(), and nfd::RibManager::slAnnounce().
PrefixAnnouncement & ndn::PrefixAnnouncement::setAnnouncedName | ( | Name | name | ) |
Set announced name.
Definition at line 96 of file prefix-announcement.cpp.
References nonstd::optional_lite::std11::move().
Referenced by getAnnouncedName(), and nfd::rib::RibEntry::getPrefixAnnouncement().
|
inline |
Return relative expiration period.
Definition at line 96 of file prefix-announcement.hpp.
References setExpiration().
Referenced by nfd::rib::computeExpiration(), ndn::operator<<(), and ndn::operator==().
PrefixAnnouncement & ndn::PrefixAnnouncement::setExpiration | ( | time::milliseconds | expiration | ) |
Set relative expiration period.
std::invalid_argument | expiration period is negative. |
Definition at line 104 of file prefix-announcement.cpp.
References NDN_THROW.
Referenced by getExpiration(), and nfd::rib::RibEntry::getPrefixAnnouncement().
|
inline |
Return absolute validity period.
Definition at line 111 of file prefix-announcement.hpp.
References getKeywordComponent(), ndn::operator==(), and setValidityPeriod().
Referenced by nfd::rib::computeExpiration(), ndn::operator<<(), and ndn::operator==().
PrefixAnnouncement & ndn::PrefixAnnouncement::setValidityPeriod | ( | optional< security::ValidityPeriod > | validity | ) |
Set absolute validity period.
Definition at line 115 of file prefix-announcement.cpp.
References nonstd::optional_lite::std11::move().
Referenced by getValidityPeriod().
|
static |
Returns the well-known keyword name component used for prefix announcements (32=PA
)
Definition at line 123 of file prefix-announcement.cpp.
References ndn::tlv::KeywordNameComponent.
Referenced by getValidityPeriod(), PrefixAnnouncement(), and toData().