7 #ifndef NDN_SELECTORS_HPP
8 #define NDN_SELECTORS_HPP
24 : m_minSuffixComponents(-1)
25 , m_maxSuffixComponents(-1)
27 , m_mustBeFresh(false)
33 Selectors(
int minSuffixComponents,
int maxSuffixComponents,
37 : m_minSuffixComponents(minSuffixComponents)
38 , m_maxSuffixComponents(maxSuffixComponents)
40 , m_childSelector(childSelector)
41 , m_mustBeFresh(mustBeFresh)
82 return m_minSuffixComponents;
88 m_minSuffixComponents = minSuffixComponents;
98 return m_maxSuffixComponents;
104 m_maxSuffixComponents = maxSuffixComponents;
114 return m_publisherPublicKeyLocator;
120 m_publisherPublicKeyLocator = keyLocator;
146 return m_childSelector;
152 m_childSelector = childSelector;
162 return m_mustBeFresh;
168 m_mustBeFresh = mustBeFresh;
183 return !(*
this == other);
187 int m_minSuffixComponents;
188 int m_maxSuffixComponents;
194 mutable Block m_wire;
201 (m_minSuffixComponents < 0 &&
202 m_maxSuffixComponents < 0 &&
203 m_publisherPublicKeyLocator.
empty() &&
205 m_childSelector < 0 &&
213 size_t totalLength = 0;
263 totalLength += block.prependVarNumber(totalLength);
280 m_wire = buffer.block();
288 throw Tlv::Error(
"Unexpected TLV type when decoding Selectors");
334 m_mustBeFresh =
true;
340 #endif // NDN_SELECTORS_HPP
void wireDecode(const Block &wire)
Decode the input from wire format.
element_const_iterator find(uint32_t type) const
size_t wireEncode(EncodingImpl< T > &block) const
Fast encoding or block size estimation.
Selectors & setChildSelector(int childSelector)
void wireDecode(const Block &wire)
Class representing wire element of the NDN packet.
size_t wireEncode(EncodingImpl< T > &block) const
Fast encoding or block size estimation.
uint64_t readNonNegativeInteger(const Block &block)
Selectors & setPublisherPublicKeyLocator(const KeyLocator &keyLocator)
element_const_iterator elements_end() const
const KeyLocator & getPublisherPublicKeyLocator() const
void wireDecode(const Block &wire)
Decode from the wire format.
const Exclude & getExclude() const
int getChildSelector() const
Selectors & setMaxSuffixComponents(int maxSuffixComponents)
const Block & wireEncode() const
Encode to a wire format.
int getMustBeFresh() const
size_t prependBooleanBlock(EncodingImpl< P > &encoder, uint32_t type)
Abstraction implementing Interest selectors.
element_container::const_iterator element_const_iterator
Selectors & setMustBeFresh(bool mustBeFresh)
void reset()
Reset wire buffer of the element.
void parse() const
Parse wire buffer into subblocks.
bool operator==(const Selectors &other) const
Selectors(const Block &wire)
Create from wire encoding.
bool empty() const
Check if exclude filter is empty.
int getMinSuffixComponents() const
Selectors(int minSuffixComponents, int maxSuffixComponents, const Exclude &exclude, int childSelector, bool mustBeFresh)
bool hasWire() const
Check if the Block has fully encoded wire.
Selectors & setExclude(const Exclude &exclude)
size_t prependNonNegativeIntegerBlock(EncodingImpl< P > &encoder, uint32_t type, uint64_t number)
helper methods
size_t wireEncode(EncodingImpl< T > &block) const
Selectors & setMinSuffixComponents(int minSuffixComponents)
bool operator!=(const Selectors &other) const
int getMaxSuffixComponents() const
Class representing wire element of the NDN packet.
Class to represent Exclude component in NDN interests.