T - Data type stored in each tree nodepublic class RadixTrie<T> extends Object
| Modifier and Type | Class and Description |
|---|---|
class |
RadixTrie.TrieNode
Trie node definition.
|
| Constructor and Description |
|---|
RadixTrie(int bits)
RadixTrie constructor.
|
RadixTrie(int bits,
boolean rootZero)
Radix trie constructors.
|
| Modifier and Type | Method and Description |
|---|---|
int |
getMaxbits() |
RadixTrie.TrieNode |
getRoot() |
long |
getSize() |
RadixTrie.TrieNode |
insert(byte[] prefix,
int preflen,
T data)
Insert prefix-data tuple into radix trie.
|
RadixTrie.TrieNode |
lookupBest(byte[] prefix,
int preflen)
Longest prefix match of prefix/preflen.
|
RadixTrie.TrieNode |
lookupCoveringLessSpecific(byte[] prefix,
int preflen)
Look up the covering prefix for the argument, but exclude the argument itself, so the result is always less
specific than the lookup key.
|
RadixTrie.TrieNode |
lookupExact(byte[] prefix,
int preflen)
Exact prefix match of prefix/preflen.
|
RadixTrie.TrieNode |
lookupParent(byte[] prefix,
int preflen)
Given an EID, lookup the longest prefix match, then return its parent node.
|
RadixTrie.TrieNode |
lookupSibling(byte[] prefix,
int preflen)
Given an EID, lookup the longest prefix match, then return its sibling node.
|
Set<RadixTrie.TrieNode> |
lookupSubtree(byte[] prefix,
int preflen)
Return the subtree for a prefix, including the prefix itself if present, excluding virtual nodes.
|
RadixTrie.TrieNode |
lookupVirtualParentSibling(byte[] prefix,
int preflen)
Given an EID, lookup the longest prefix match, then return its direct parent's sibling node, if the parent is a
virtual node.
|
RadixTrie.TrieNode |
lookupWidestNegative(byte[] prefix,
int preflen)
Lookup widest negative (i.e., overlapping but not present in trie) prefix for given prefix and prefix length.
|
void |
remove(byte[] prefix,
int preflen)
Remove prefix from radix trie.
|
void |
removeAll()
Remove all entries in the trie.
|
public RadixTrie(int bits)
bits - Maximum prefix length supported.public RadixTrie(int bits,
boolean rootZero)
bits - Maximum prefix length supportedrootZero - Flag that decides if 0/0 should be inserted as a non-prefix root node or notpublic RadixTrie.TrieNode getRoot()
public int getMaxbits()
public long getSize()
public RadixTrie.TrieNode insert(byte[] prefix, int preflen, T data)
prefix - Big endian (network order) byte array representation of the prefixpreflen - Prefix lengthdata - Data to be stored in the treepublic RadixTrie.TrieNode lookupBest(byte[] prefix, int preflen)
prefix - Big endian byte array representation of the prefix to be looked up.preflen - Prefix lengthpublic RadixTrie.TrieNode lookupCoveringLessSpecific(byte[] prefix, int preflen)
prefix - Big endian byte array representation of the prefix argumentpreflen - Prefix lengthpublic RadixTrie.TrieNode lookupParent(byte[] prefix, int preflen)
prefix - Prefix looked up.preflen - Prefix length.public RadixTrie.TrieNode lookupSibling(byte[] prefix, int preflen)
prefix - Prefix looked up.preflen - Prefix length.public RadixTrie.TrieNode lookupVirtualParentSibling(byte[] prefix, int preflen)
prefix - Prefix looked up.preflen - Prefix length.public RadixTrie.TrieNode lookupWidestNegative(byte[] prefix, int preflen)
prefix - Prefix looked up.preflen - Prefix length.public RadixTrie.TrieNode lookupExact(byte[] prefix, int preflen)
prefix - Big endian byte array representation of the prefix to be looked up.preflen - Prefix lengthpublic Set<RadixTrie.TrieNode> lookupSubtree(byte[] prefix, int preflen)
prefix - Big endian byte array representation of the prefix to be looked up.preflen - Prefix lengthpublic void remove(byte[] prefix,
int preflen)
prefix - Big endian byte array representation of the prefix to be removed.preflen - Prefix length.public void removeAll()
Copyright © 2019 OpenDaylight. All rights reserved.