8 #ifndef NDN_MANAGEMENT_NRD_PREFIX_REG_OPTIONS_HPP
9 #define NDN_MANAGEMENT_NRD_PREFIX_REG_OPTIONS_HPP
11 #include "../encoding/encoding-buffer.hpp"
12 #include "../encoding/tlv-nrd.hpp"
13 #include "../name.hpp"
45 , m_expirationPeriod(time::milliseconds::min())
131 const time::milliseconds&
134 return m_expirationPeriod;
140 m_expirationPeriod = expirationPeriod;
156 m_protocol = protocol;
166 time::milliseconds m_expirationPeriod;
167 std::string m_protocol;
169 mutable Block m_wire;
176 size_t totalLength = 0;
189 if (!m_protocol.empty())
193 reinterpret_cast<const uint8_t*>(m_protocol.c_str()),
198 if (m_expirationPeriod > time::milliseconds::zero())
202 m_expirationPeriod.count());
226 totalLength += block.prependVarNumber(totalLength);
243 m_wire = buffer.block();
262 m_expirationPeriod = time::milliseconds::min();
268 throw Error(
"Requested decoding of PrefixRegOptions, but Block is of different type");
311 m_protocol = std::string(reinterpret_cast<const char*>(val->value()),
319 os <<
"PrefixRegOptions(";
322 os <<
"Prefix: " << option.
getName() <<
", ";
325 os <<
"FaceID: " << option.
getFaceId() <<
", ";
328 os <<
"Flags: " << option.
getFlags() <<
", ";
331 os <<
"Cost: " << option.
getCost() <<
", ";
346 #endif // NDN_MANAGEMENT_NRD_PREFIX_REG_OPTIONS_HPP
PrefixRegOptions & setFaceId(uint64_t faceId)
PrefixRegOptions & setCost(uint64_t cost)
const uint64_t DEFAULT_FLAGS
element_const_iterator find(uint32_t type) const
std::ostream & operator<<(std::ostream &os, const PrefixRegOptions &option)
const std::string & getProtocol() const
PrefixRegOptions(const Block &block)
const Name & getName() const
Class representing wire element of the NDN packet.
void wireDecode(const Block &wire)
uint64_t readNonNegativeInteger(const Block &block)
const uint64_t DEFAULT_COST
PrefixRegOptions & setExpirationPeriod(const time::milliseconds &expirationPeriod)
element_const_iterator elements_end() const
const uint64_t INVALID_FACE_ID
PrefixRegOptions & setName(const Name &name)
PrefixRegOptions & setFlags(uint64_t flags)
uint64_t getFlags() const
element_container::const_iterator element_const_iterator
void reset()
Reset wire buffer of the element.
A Name holds an array of Name::Component and represents an NDN name.
size_t wireEncode(EncodingImpl< T > &block) const
Fast encoding or block size estimation.
void parse() const
Parse wire buffer into subblocks.
PrefixRegOptions & setProtocol(const std::string &protocol)
uint64_t getFaceId() const
const time::milliseconds & getExpirationPeriod() const
bool hasWire() const
Check if the Block has fully encoded wire.
Abstraction for prefix registration options for NRD Prefix registration protocol. ...
size_t prependNonNegativeIntegerBlock(EncodingImpl< P > &encoder, uint32_t type, uint64_t number)
helper methods
Error(const std::string &what)
void wireDecode(const Block &wire)
const Block & wireEncode() const
void clear()
Clear all the components.
size_t prependByteArrayBlock(EncodingImpl< P > &encoder, uint32_t type, const uint8_t *array, size_t arraySize)
Class representing wire element of the NDN packet.