46 template<encoding::Tag TAG>
50 size_t totalLength = 0;
58 totalLength += encoder.prependVarNumber(totalLength);
77 m_wire = buffer.block();
85 BOOST_THROW_EXCEPTION(
Error(
"expecting CsInfo block, got " +
to_string(block.
type())));
96 BOOST_THROW_EXCEPTION(
Error(
"missing required Capacity field"));
104 BOOST_THROW_EXCEPTION(
Error(
"missing required Flags field"));
112 BOOST_THROW_EXCEPTION(
Error(
"missing required NCsEntries field"));
120 BOOST_THROW_EXCEPTION(
Error(
"missing required NHits field"));
128 BOOST_THROW_EXCEPTION(
Error(
"missing required NMisses field"));
136 m_capacity = capacity;
160 m_nEntries = nEntries;
191 << (csi.
getEnableAdmit() ?
"admit enabled, " :
"admit disabled, ")
192 << (csi.
getEnableServe() ?
"serve enabled, " :
"serve disabled, ")
CsInfo & setNHits(uint64_t nHits)
uint64_t getNMisses() const
get number of CS lookup misses since NFD starts
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.
uint64_t getCapacity() const
get CS capacity (in number of packets)
const Block & wireEncode() const
bool getEnableAdmit() const
get CS_ENABLE_ADMIT flag
bool getEnableServe() const
get CS_ENABLE_SERVE flag
void parse() const
Parse TLV-VALUE into sub elements.
NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS(ChannelStatus)
Represents a TLV element of NDN packet format.
CsInfo & setNEntries(uint64_t nEntries)
element_const_iterator elements_begin() const
Equivalent to elements().begin()
CsInfo & setEnableAdmit(bool enableAdmit)
uint64_t readNonNegativeInteger(const Block &block)
Read a non-negative integer from a TLV element.
uint64_t getNHits() const
get number of CS lookup hits since NFD starts
void wireDecode(const Block &wire)
element_const_iterator elements_end() const
Equivalent to elements().end()
Copyright (c) 2011-2015 Regents of the University of California.
CsInfo & setEnableServe(bool enableServe)
bool operator==(const ChannelStatus &a, const ChannelStatus &b)
enables the CS to satisfy Interests using cached Data
enables the CS to admit new Data
std::ostream & operator<<(std::ostream &os, FaceScope faceScope)
void reset()
Reset wire buffer of the element.
represents the CS Information dataset
concept check for an item in a Status Dataset
size_t wireEncode(EncodingImpl< TAG > &encoder) const
CsInfo & setCapacity(uint64_t capacity)
std::string to_string(const V &v)
CsInfo & setNMisses(uint64_t nMisses)
EncodingImpl< EncoderTag > EncodingBuffer
uint32_t type() const
Get TLV-TYPE.
uint64_t getNEntries() const
get number of stored CS entries
EncodingImpl< EstimatorTag > EncodingEstimator