PMDK C++ bindings  1.12-git53.g67ba2be4
This is the C++ bindings documentation for PMDK's libpmemobj.
Public Attributes | List of all members
pmem::obj::experimental::radix_tree< Key, Value, BytesView >::node Struct Reference

This is internal node. More...

#include <libpmemobj++/experimental/radix_tree.hpp>

Public Attributes

tagged_node_ptr parent
 Pointer to a parent node. More...
 
tagged_node_ptr embedded_entry
 The embedded_entry ptr is used only for nodes for which length of the path from root is a multiple of byte (n->bit == FIRST_NIB). More...
 
byten_t byte
 Byte and bit together are used to calculate the NIB which is used to index the child array. More...
 

Detailed Description

template<typename Key, typename Value, typename BytesView = detail::bytes_view<Key>>
struct pmem::obj::experimental::radix_tree< Key, Value, BytesView >::node

This is internal node.

It does not hold any values directly, but can contain pointer to an embedded entry (see below).

Member Data Documentation

◆ byte

template<typename Key , typename Value , typename BytesView = detail::bytes_view<Key>>
byten_t pmem::obj::experimental::radix_tree< Key, Value, BytesView >::node::byte

Byte and bit together are used to calculate the NIB which is used to index the child array.

The calculations are done in slice_index function.

Let's say we have a key = 0xABCD

For byte = 0, bit = 4 we have NIB = 0xA For byte = 0, bit = 0 we have NIB = 0xB

◆ embedded_entry

template<typename Key , typename Value , typename BytesView = detail::bytes_view<Key>>
tagged_node_ptr pmem::obj::experimental::radix_tree< Key, Value, BytesView >::node::embedded_entry

The embedded_entry ptr is used only for nodes for which length of the path from root is a multiple of byte (n->bit == FIRST_NIB).

This entry holds a key which represents the entire subtree prefix (path from root).

◆ parent

template<typename Key , typename Value , typename BytesView = detail::bytes_view<Key>>
tagged_node_ptr pmem::obj::experimental::radix_tree< Key, Value, BytesView >::node::parent

Pointer to a parent node.

Used by iterators.


The documentation for this struct was generated from the following file: