7 #ifndef NDN_MANAGEMENT_NFD_CONTROL_PARAMETERS_HPP
8 #define NDN_MANAGEMENT_NFD_CONTROL_PARAMETERS_HPP
10 #include "../name.hpp"
11 #include "../encoding/tlv-nfd.hpp"
33 "LocalControlFeature",
155 BOOST_ASSERT(this->
hasUri());
186 return m_localControlFeature;
193 m_localControlFeature = localControlFeature;
313 m_strategy = strategy;
332 const time::milliseconds&
336 return m_expirationPeriod;
343 m_expirationPeriod = expirationPeriod;
356 const std::vector<bool>&
363 std::vector<bool> m_hasFields;
373 time::milliseconds m_expirationPeriod;
376 mutable Block m_wire;
384 size_t totalLength = 0;
407 size_t valLength = encoder.prependByteArray(
408 reinterpret_cast<const uint8_t*>(m_uri.c_str()), m_uri.size());
409 totalLength += valLength;
410 totalLength += encoder.prependVarNumber(valLength);
420 totalLength += encoder.prependVarNumber(totalLength);
437 m_wire = buffer.block();
445 throw Error(
"expecting TLV-TYPE ControlParameters");
466 m_uri.assign(reinterpret_cast<const char*>(val->value()), val->value_size());
497 if (val->elements().empty()) {
498 throw Error(
"expecting Strategy/Name");
501 m_strategy.
wireDecode(*val->elements_begin());
515 os <<
"ControlParameters(";
518 os <<
"Name: " << parameters.
getName() <<
", ";
522 os <<
"FaceId: " << parameters.
getFaceId() <<
", ";
525 if (parameters.
hasUri()) {
526 os <<
"Uri: " << parameters.
getUri() <<
", ";
534 os <<
"Origin: " << parameters.
getOrigin() <<
", ";
538 os <<
"Cost: " << parameters.
getCost() <<
", ";
542 os <<
"Flags: " << parameters.
getFlags() <<
", ";
546 os <<
"Strategy: " << parameters.
getStrategy() <<
", ";
561 #endif // NDN_MANAGEMENT_NFD_CONTROL_PARAMETERS_HPP
std::ostream & operator<<(std::ostream &os, const ControlParameters ¶meters)
uint64_t getFlags() const
ControlParameters & setFaceId(uint64_t faceId)
size_t prependNestedBlock(EncodingImpl< P > &encoder, uint32_t type, const U &nestedBlock)
ControlParameters & unsetStrategy()
const Name & getStrategy() const
ControlParameters(const Block &block)
represents parameters in a ControlCommand request or response
element_const_iterator find(uint32_t type) const
void wireDecode(const Block &wire)
uint64_t getOrigin() const
ControlParameters & setFlags(uint64_t flags)
bool hasExpirationPeriod() const
ControlParameters & unsetFaceId()
Class representing wire element of the NDN packet.
ControlParameters & unsetCost()
Error(const std::string &what)
uint64_t readNonNegativeInteger(const Block &block)
ControlParameters & unsetFlags()
ControlParameters & setUri(const std::string &uri)
ControlParameters & unsetOrigin()
bool hasLocalControlFeature() const
ControlParameters & setStrategy(const Name &strategy)
ControlParameters & setExpirationPeriod(const time::milliseconds &expirationPeriod)
element_const_iterator elements_end() const
const std::vector< bool > & getPresentFields() const
ControlParameters & setLocalControlFeature(LocalControlFeature localControlFeature)
ControlParameters & unsetExpirationPeriod()
const Name & getName() 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.
const std::string CONTROL_PARAMETER_FIELD[CONTROL_PARAMETER_UBOUND]
size_t wireEncode(EncodingImpl< T > &block) const
Fast encoding or block size estimation.
void parse() const
Parse wire buffer into subblocks.
LocalControlFeature getLocalControlFeature() const
uint64_t getFaceId() const
ControlParameters & setCost(uint64_t cost)
const time::milliseconds & getExpirationPeriod() const
ControlParameters & setOrigin(uint64_t origin)
ControlParameters & setName(const Name &name)
bool hasWire() const
Check if the Block has fully encoded wire.
size_t prependNonNegativeIntegerBlock(EncodingImpl< P > &encoder, uint32_t type, uint64_t number)
helper methods
ControlParameters & unsetName()
ControlParameters & unsetUri()
void wireDecode(const Block &wire)
const Block & wireEncode() const
const std::string & getUri() const
Class representing wire element of the NDN packet.
ControlParameters & unsetLocalControlFeature()