represents a list of Delegations More...
#include <ndn-cxx/delegation-list.hpp>
Classes | |
| class | Error |
Public Types | |
| using | const_iterator = std::vector< Delegation >::const_iterator |
| enum | InsertConflictResolution { INS_REPLACE, INS_APPEND, INS_SKIP } |
| what to do when inserting a duplicate name More... | |
Public Member Functions | |
| DelegationList () | |
| construct an empty DelegationList More... | |
| DelegationList (std::initializer_list< Delegation > dels) | |
| construct a sorted DelegationList with specified delegations More... | |
| DelegationList (const Block &block, bool wantSort=true) | |
| decode a DelegationList More... | |
| const Delegation & | at (size_t i) const |
| get the i-th delegation More... | |
| const_iterator | begin () const noexcept |
| bool | empty () const noexcept |
| const_iterator | end () const noexcept |
| size_t | erase (uint64_t preference, const Name &name) |
| delete Delegation(s) with specified preference and name More... | |
| size_t | erase (const Delegation &del) |
| delete Delegation(s) with matching preference and name More... | |
| size_t | erase (const Name &name) |
| erase Delegation(s) with specified name More... | |
| bool | insert (uint64_t preference, const Name &name, InsertConflictResolution onConflict=INS_REPLACE) |
| insert Delegation More... | |
| bool | insert (const Delegation &del, InsertConflictResolution onConflict=INS_REPLACE) |
| insert Delegation More... | |
| bool | isSorted () const noexcept |
| const Delegation & | operator[] (size_t i) const |
| get the i-th delegation More... | |
| size_t | size () const noexcept |
| void | sort () |
| sort the delegation list More... | |
| void | wireDecode (const Block &block, bool wantSort=true) |
| decode a DelegationList More... | |
| template<encoding::Tag TAG> | |
| size_t | wireEncode (EncodingImpl< TAG > &encoder, uint32_t type=tlv::ForwardingHint) const |
| encode into wire format More... | |
Friends | |
| bool | operator== (const DelegationList &, const DelegationList &) |
| compare whether two DelegationLists are equal More... | |
represents a list of Delegations
Delegations are stored in an std::vector, under the assumption that there is usually only a small number of Delegations, so that copying is acceptable when they are modified.
Definition at line 37 of file delegation-list.hpp.
| using ndn::DelegationList::const_iterator = std::vector<Delegation>::const_iterator |
Definition at line 89 of file delegation-list.hpp.
what to do when inserting a duplicate name
| Enumerator | |
|---|---|
| INS_REPLACE |
existing delegation(s) with the same name are replaced with the new delegation |
| INS_APPEND |
multiple delegations with the same name are kept in the DelegationList
|
| INS_SKIP |
new delegation is not inserted if an existing delegation has the same name |
Definition at line 152 of file delegation-list.hpp.
| ndn::DelegationList::DelegationList | ( | ) |
construct an empty DelegationList
Definition at line 35 of file delegation-list.cpp.
| ndn::DelegationList::DelegationList | ( | std::initializer_list< Delegation > | dels | ) |
construct a sorted DelegationList with specified delegations
This is equivalent to inserting each delegation into an empty DelegationList with INS_REPLACE conflict resolution.
Definition at line 40 of file delegation-list.cpp.
|
explicit |
|
inline |
get the i-th delegation
| std::out_of_range | i >= size() |
Definition at line 129 of file delegation-list.hpp.
|
inlinenoexcept |
Definition at line 92 of file delegation-list.hpp.
|
inlinenoexcept |
Definition at line 104 of file delegation-list.hpp.
|
inlinenoexcept |
Definition at line 98 of file delegation-list.hpp.
|
inline |
delete Delegation(s) with specified preference and name
Definition at line 187 of file delegation-list.hpp.
|
inline |
delete Delegation(s) with matching preference and name
Definition at line 196 of file delegation-list.hpp.
|
inline |
erase Delegation(s) with specified name
Definition at line 205 of file delegation-list.hpp.
| bool ndn::DelegationList::insert | ( | uint64_t | preference, |
| const Name & | name, | ||
| InsertConflictResolution | onConflict = INS_REPLACE |
||
| ) |
|
inline |
|
inlinenoexcept |
Definition at line 84 of file delegation-list.hpp.
|
inline |
|
inlinenoexcept |
Definition at line 110 of file delegation-list.hpp.
| void ndn::DelegationList::sort | ( | ) |
sort the delegation list
A DelegationList can be constructed as sorted or unsorted. In most cases, it is recommended to use a sorted DelegationList. An unsorted DelegationList is useful for extracting the i-th delegation from a received ForwardingHint or Link object.
This method turns an unsorted DelegationList into a sorted DelegationList. If access to unsorted DelegationList is not needed, it is more efficient to sort the DelegationList in wireDecode.
Definition at line 160 of file delegation-list.cpp.
| void ndn::DelegationList::wireDecode | ( | const Block & | block, |
| bool | wantSort = true |
||
| ) |
decode a DelegationList
| block | either a Content block (from Link) or a ForwardingHint block |
| wantSort | if true, delegations are sorted |
| Error | the block cannot be parsed as a list of Delegations |
Definition at line 109 of file delegation-list.cpp.
| size_t ndn::DelegationList::wireEncode | ( | EncodingImpl< TAG > & | encoder, |
| uint32_t | type = tlv::ForwardingHint |
||
| ) | const |
encode into wire format
| encoder | either an EncodingBuffer or an EncodingEstimator |
| type | TLV-TYPE number, either Content (for Link) or ForwardingHint |
| std::invalid_argument | type is invalid |
| Error | there is no Delegation |
Definition at line 67 of file delegation-list.cpp.
|
friend |
compare whether two DelegationLists are equal
Definition at line 230 of file delegation-list.cpp.