22 #ifndef NDN_DELEGATION_LIST_HPP 23 #define NDN_DELEGATION_LIST_HPP 27 #include <initializer_list> 69 template<encoding::Tag TAG>
92 return m_dels.begin();
104 return m_dels.empty();
110 return m_dels.size();
119 BOOST_ASSERT(i <
size());
187 return this->eraseImpl(preference, name);
205 return this->eraseImpl(nullopt, name);
210 isValidTlvType(uint32_t type);
213 insertImpl(uint64_t preference,
const Name& name);
216 eraseImpl(optional<uint64_t> preference,
const Name& name);
229 return lhs.m_dels == rhs.m_dels;
235 return lhs.m_dels != rhs.m_dels;
248 std::vector<Delegation> m_dels;
252 extern template size_t 253 DelegationList::wireEncode<encoding::EncoderTag>(
EncodingBuffer&, uint32_t)
const;
255 extern template size_t 256 DelegationList::wireEncode<encoding::EstimatorTag>(
EncodingEstimator&, uint32_t)
const;
264 #endif // NDN_DELEGATION_LIST_HPP
existing delegation(s) with the same name are replaced with the new delegation
const Delegation & at(size_t i) const
get the i-th delegation
new delegation is not inserted if an existing delegation has the same name
DelegationList()
construct an empty DelegationList
std::ostream & operator<<(std::ostream &os, const Data &data)
friend bool operator!=(const DelegationList &lhs, const DelegationList &rhs)
const Delegation & operator[](size_t i) const
get the i-th delegation
Represents a TLV element of the NDN packet format.
std::vector< Delegation >::const_iterator const_iterator
size_t erase(uint64_t preference, const Name &name)
delete Delegation(s) with specified preference and name
size_t erase(const Name &name)
erase Delegation(s) with specified name
void wireDecode(const Block &block, bool wantSort=true)
decode a DelegationList
const_iterator end() const noexcept
bool insert(const Delegation &del, InsertConflictResolution onConflict=INS_REPLACE)
insert Delegation
bool isSorted() const noexcept
#define NDN_CXX_NODISCARD
size_t wireEncode(EncodingImpl< TAG > &encoder, uint32_t type=tlv::ForwardingHint) const
encode into wire format
size_t size() const noexcept
Represents an absolute name.
bool insert(uint64_t preference, const Name &name, InsertConflictResolution onConflict=INS_REPLACE)
insert Delegation
InsertConflictResolution
what to do when inserting a duplicate name
size_t erase(const Delegation &del)
delete Delegation(s) with matching preference and name
friend bool operator==(const DelegationList &lhs, const DelegationList &rhs)
Compare whether two DelegationLists are equal.
void sort()
sort the delegation list
bool empty() const noexcept
represents a list of Delegations
multiple delegations with the same name are kept in the DelegationList
EncodingImpl< EncoderTag > EncodingBuffer
Error(const char *expectedType, uint32_t actualType)
represents an error in TLV encoding or decoding
EncodingImpl< EstimatorTag > EncodingEstimator
const_iterator begin() const noexcept