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.