The RefTrie itself
The trie support insertion and deletion of Key,Payload pairs, and lookup by Key (which can be an address or a subnet).
Additional methods are supported to provide access via iterators.
typedef IPNet<A> Key | Key |
typedef RefTrieNode<A, Payload> Node | Node |
typedef RefTriePostOrderIterator<A, Payload> iterator | iterator |
typedef RefTriePostOrderIterator<A, Payload> PostOrderIterator | PostOrderIterator |
typedef RefTriePreOrderIterator<A, Payload> PreOrderIterator | PreOrderIterator |
RefTrie ()
| RefTrie |
~RefTrie ()
| ~RefTrie |
[virtual]
void delete_self ()
| delete_self |
void set_root (Node *root)
| set_root |
iterator insert (const Key & net, const Payload& p)
| insert |
insert a key, payload pair, returns an iterator to the newly inserted node. Prints a warning message if the new entry overwrites an existing full node.
void erase (const Key &k)
| erase |
delete the node with the given key.
void erase (iterator i)
| erase |
delete the node pointed by the iterator.
iterator find (const Key &k)
| find |
[const]
given a key, returns an iterator to the entry with the longest matching prefix.
iterator find (const A& a)
| find |
[const]
given an address, returns an iterator to the entry with the longest matching prefix.
iterator lower_bound (const Key &k)
| lower_bound |
[const]
iterator begin ()
| begin |
[const]
const iterator end ()
| end |
[const]
void delete_all_nodes ()
| delete_all_nodes |
iterator lookup_node (const Key & k)
| lookup_node |
[const]
lookup a subnet, must return exact match if found, end() if not.
iterator search_subtree (const Key &key)
| search_subtree |
[const]
returns an iterator to the subtree rooted at or below the key passed as parameter.
iterator find_less_specific (const Key &key)
| find_less_specific |
[const]
find_less_specific asks the question: if I were to add this net to the trie, what would be its parent node? net may or may not already be in the trie. Implemented as a find() with a less specific key.
void find_bounds (const A& a, A &lo, A &hi)
| find_bounds |
[const]
return the lower and higher address in the range that contains a and would map to the same route.
A find_lower_bound (const A a)
| find_lower_bound |
[const]
A find_higher_bound (const A a)
| find_higher_bound |
[const]
int route_count ()
| route_count |
[const]
void print ()
|
[const]
string str ()
| str |
[const]