|
CatapultServer
v0.5.0.1 (Elephant)
|
Represents a compact patricia tree. More...

Classes | |
| struct | PathValuePairRef |
Public Types | |
| using | KeyType = typename TEncoder::KeyType |
| using | ValueType = typename TEncoder::ValueType |
Public Member Functions | |
| PatriciaTree (TDataSource &dataSource) | |
| Creates a tree around a dataSource. More... | |
| Hash256 | root () const |
| Gets the root hash that uniquely identifies this tree. More... | |
| void | set (const KeyType &key, const ValueType &value) |
| Sets key to value in the tree. More... | |
| bool | unset (const KeyType &key) |
| Removes the value associated with key from the tree. More... | |
| std::pair< Hash256, bool > | lookup (const KeyType &key, std::vector< TreeNode > &nodePath) const |
| Tries to find the value associated with key in the tree and stores proof of existence or not in nodePath. More... | |
| bool | tryLoad (const Hash256 &rootHash) |
| Loads the node with hash rootHash and sets it as the root node. More... | |
| void | setRoot (const TreeNode &rootNode) |
| Sets the root to rootNode. More... | |
| void | clear () |
| Clears the tree. More... | |
| void | saveAll () |
| Saves all tree nodes to the underlying data source. More... | |
Private Member Functions | |
| TreeNode | set (const TreeNode &node, const PathValuePairRef &newPair) |
| LeafTreeNode | createLeaf (const PathValuePairRef &pair) |
| BranchTreeNode | branchLeafNode (const LeafTreeNode &leafNode, const PathValuePairRef &newPair) |
| BranchTreeNode | updateBranchLink (BranchTreeNode &&branchNode, const PathValuePairRef &newPair) |
| BranchTreeNode | insertNewPairIntoBranch (BranchTreeNode &branchNode, const TreeNodePath &branchPath, size_t differenceIndex, const PathValuePairRef &newPair) |
| bool | unset (const TreeNode &node, const TreeNodePath &keyPath, TreeNode &updatedNode, bool &canMerge) |
| TreeNode | unsetBranchLink (BranchTreeNode &&branchNode, size_t linkIndex) |
| TreeNode | updateBranchLink (BranchTreeNode &&branchNode, size_t linkIndex, const TreeNode &linkedNode) |
| std::pair< Hash256, bool > | lookup (const TreeNode &node, const TreeNodePath &keyPath, std::vector< TreeNode > &nodePath) const |
| void | save (const TreeNode &node) |
| void | saveAll (const TreeNode &node) |
| std::unique_ptr< const TreeNode > | getLinkedNode (const BranchTreeNode &branchNode, size_t index) const |
| void | setLink (BranchTreeNode &branchNode, const TreeNode &node, size_t index) |
| template<typename TNode > | |
| void | setLink (BranchTreeNode &branchNode, const TNode &node, size_t index) |
Static Private Member Functions | |
| static std::pair< Hash256, bool > | LookupNotFoundResult () |
Private Attributes | |
| TDataSource & | m_dataSource |
| TreeNode | m_rootNode |
Represents a compact patricia tree.
| using catapult::tree::PatriciaTree< TEncoder, TDataSource >::KeyType = typename TEncoder::KeyType |
| using catapult::tree::PatriciaTree< TEncoder, TDataSource >::ValueType = typename TEncoder::ValueType |
|
inlineexplicit |
Creates a tree around a dataSource.
|
inlineprivate |

|
inline |
Clears the tree.
|
inlineprivate |

|
inlineprivate |

|
inlineprivate |

|
inline |
Tries to find the value associated with key in the tree and stores proof of existence or not in nodePath.

|
inlineprivate |
|
inlinestaticprivate |

|
inline |
Gets the root hash that uniquely identifies this tree.
|
inlineprivate |

|
inline |
Saves all tree nodes to the underlying data source.

|
inlineprivate |
|
inline |
Sets key to value in the tree.

|
inlineprivate |
|
inlineprivate |
|
inlineprivate |

|
inline |
Sets the root to rootNode.
|
inline |
Loads the node with hash rootHash and sets it as the root node.
|
inline |
Removes the value associated with key from the tree.

|
inlineprivate |
|
inlineprivate |

|
inlineprivate |

|
inlineprivate |
|
private |
|
private |