51 template<encoding::Tag TAG>
55 size_t totalLength = 0;
66 if (m_defaultCongestionThreshold) {
68 *m_defaultCongestionThreshold);
70 if (m_baseCongestionMarkingInterval) {
72 m_baseCongestionMarkingInterval->count());
77 if (m_expirationPeriod) {
79 m_expirationPeriod->count());
85 totalLength += encoder.prependVarNumber(totalLength);
112 BOOST_THROW_EXCEPTION(Error(
"expecting FaceStatus block"));
123 BOOST_THROW_EXCEPTION(Error(
"missing required FaceId field"));
131 BOOST_THROW_EXCEPTION(Error(
"missing required Uri field"));
139 BOOST_THROW_EXCEPTION(Error(
"missing required LocalUri field"));
151 m_faceScope = readNonNegativeIntegerAs<FaceScope>(*val);
155 BOOST_THROW_EXCEPTION(Error(
"missing required FaceScope field"));
163 BOOST_THROW_EXCEPTION(Error(
"missing required FacePersistency field"));
167 m_linkType = readNonNegativeIntegerAs<LinkType>(*val);
171 BOOST_THROW_EXCEPTION(Error(
"missing required LinkType field"));
179 m_baseCongestionMarkingInterval =
nullopt;
187 m_defaultCongestionThreshold =
nullopt;
195 BOOST_THROW_EXCEPTION(Error(
"missing required NInInterests field"));
203 BOOST_THROW_EXCEPTION(Error(
"missing required NInData field"));
211 BOOST_THROW_EXCEPTION(Error(
"missing required NInNacks field"));
219 BOOST_THROW_EXCEPTION(Error(
"missing required NOutInterests field"));
227 BOOST_THROW_EXCEPTION(Error(
"missing required NOutData field"));
235 BOOST_THROW_EXCEPTION(Error(
"missing required NOutNacks field"));
243 BOOST_THROW_EXCEPTION(Error(
"missing required NInBytes field"));
251 BOOST_THROW_EXCEPTION(Error(
"missing required NOutBytes field"));
259 BOOST_THROW_EXCEPTION(Error(
"missing required Flags field"));
267 m_expirationPeriod = expirationPeriod;
283 m_baseCongestionMarkingInterval = interval;
291 m_baseCongestionMarkingInterval =
nullopt;
299 m_defaultCongestionThreshold = threshold;
307 m_defaultCongestionThreshold =
nullopt;
315 m_nInInterests = nInInterests;
331 m_nInNacks = nInNacks;
339 m_nOutInterests = nOutInterests;
347 m_nOutData = nOutData;
355 m_nOutNacks = nOutNacks;
363 m_nInBytes = nInBytes;
371 m_nOutBytes = nOutBytes;
406 os <<
"Face(FaceId: " << status.
getFaceId() <<
",\n" 414 os <<
" ExpirationPeriod: infinite,\n";
432 <<
" Data: {in: " << status.
getNInData() <<
", " constexpr nullopt_t nullopt
const std::string & getLocalUri() const
void wireDecode(const Block &wire)
decode FaceStatus
uint64_t getNOutInterests() const
time::milliseconds getExpirationPeriod() const
bool hasWire() const
Check if the Block has fully encoded wire.
Copyright (c) 2011-2015 Regents of the University of California.
size_t prependNonNegativeIntegerBlock(EncodingImpl< TAG > &encoder, uint32_t type, uint64_t value)
Prepend a TLV element containing a non-negative integer.
FacePersistency getFacePersistency() const
void emplace(Args &&... args)
bool hasExpirationPeriod() const
uint64_t getNOutNacks() const
bool hasBaseCongestionMarkingInterval() const
element_container::const_iterator element_const_iterator
uint64_t getNOutBytes() const
uint64_t getNInInterests() const
Helper class to convert a number to hexadecimal format, for use with stream insertion operators...
FaceStatus & unsetDefaultCongestionThreshold()
void parse() const
Parse TLV-VALUE into sub elements.
FacePersistency m_facePersistency
NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS(ChannelStatus)
Represents a TLV element of NDN packet format.
size_t prependStringBlock(EncodingImpl< TAG > &encoder, uint32_t type, const std::string &value)
Prepend a TLV element containing a string.
std::string readString(const Block &block)
Read TLV-VALUE of a TLV element as a string.
FaceScope getFaceScope() const
element_const_iterator elements_begin() const
Equivalent to elements().begin()
FaceStatus & setNOutBytes(uint64_t nOutBytes)
FaceStatus & setNOutInterests(uint64_t nOutInterests)
uint64_t readNonNegativeInteger(const Block &block)
Read a non-negative integer from a TLV element.
const std::string & getRemoteUri() const
uint64_t getNOutData() const
FaceStatus & setExpirationPeriod(time::milliseconds expirationPeriod)
FaceStatus & setNInInterests(uint64_t nInInterests)
uint64_t getNInBytes() const
FaceStatus & setNInBytes(uint64_t nInBytes)
FaceStatus & unsetBaseCongestionMarkingInterval()
element_const_iterator elements_end() const
Equivalent to elements().end()
FaceStatus & unsetExpirationPeriod()
FaceStatus & setNInNacks(uint64_t nInNacks)
Copyright (c) 2011-2015 Regents of the University of California.
FaceStatus & setNOutData(uint64_t nOutData)
bool operator==(const ChannelStatus &a, const ChannelStatus &b)
represents an item in NFD Face dataset
time::nanoseconds getBaseCongestionMarkingInterval() const
std::ostream & operator<<(std::ostream &os, FaceScope faceScope)
void reset()
Reset wire buffer of the element.
uint64_t getDefaultCongestionThreshold() const
get default congestion threshold (measured in bytes)
concept check for an item in a Status Dataset
FaceStatus & setBaseCongestionMarkingInterval(time::nanoseconds interval)
uint64_t getFlags() const
uint64_t getNInData() const
FaceStatus & setNOutNacks(uint64_t nOutNacks)
const Block & wireEncode() const
encode FaceStatus
FaceStatus & setNInData(uint64_t nInData)
uint64_t getFaceId() const
bool hasDefaultCongestionThreshold() const
EncodingImpl< EncoderTag > EncodingBuffer
uint32_t type() const
Get TLV-TYPE.
LinkType getLinkType() const
EncodingImpl< EstimatorTag > EncodingEstimator
FaceStatus & setDefaultCongestionThreshold(uint64_t threshold)
set default congestion threshold (measured in bytes)
uint64_t getNInNacks() const