PMDK C++ bindings  1.13.0-git107.g7e59f08f
This is the C++ bindings documentation for PMDK's libpmemobj.
pmem::obj::experimental::radix_tree< Key, Value, BytesView, MtMode >::leaf Struct Reference

This is the structure which 'holds' key/value pair. More...

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

Public Types

using tree_type = radix_tree< Key, Value, BytesView, MtMode >
 

Public Member Functions

 leaf (const leaf &)=delete
 
 leaf (leaf &&)=delete
 
leafoperator= (const leaf &)=delete
 
leafoperator= (leaf &&)=delete
 
Key & key ()
 
Value & value ()
 
const Key & key () const
 
const Value & value () const
 
template<typename... Args1, typename... Args2>
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake (pointer_type parent, std::piecewise_construct_t pc, std::tuple< Args1... > first_args, std::tuple< Args2... > second_args)
 
template<typename K , typename V >
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake (pointer_type parent, K &&k, V &&v)
 
template<typename K , typename... Args>
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake_key_args (pointer_type parent, K &&k, Args &&... args)
 
template<typename K , typename V >
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake (pointer_type parent, detail::pair< K, V > &&p)
 
template<typename K , typename V >
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake (pointer_type parent, const detail::pair< K, V > &p)
 
template<typename K , typename V >
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake (pointer_type parent, std::pair< K, V > &&p)
 
template<typename K , typename V >
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake (pointer_type parent, const std::pair< K, V > &p)
 
template<typename... Args1, typename... Args2, size_t... I1, size_t... I2>
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leafmake (pointer_type parent, std::piecewise_construct_t, std::tuple< Args1... > &first_args, std::tuple< Args2... > &second_args, detail::index_sequence< I1... >, detail::index_sequence< I2... >)
 

Static Public Member Functions

static persistent_ptr< leafmake (pointer_type parent)
 
template<typename... Args1, typename... Args2>
static persistent_ptr< leafmake (pointer_type parent, std::piecewise_construct_t pc, std::tuple< Args1... > first_args, std::tuple< Args2... > second_args)
 
template<typename K , typename V >
static persistent_ptr< leafmake (pointer_type parent, K &&k, V &&v)
 
static persistent_ptr< leafmake (pointer_type parent, const Key &k, const Value &v)
 
template<typename K , typename... Args>
static persistent_ptr< leafmake_key_args (pointer_type parent, K &&k, Args &&... args)
 
template<typename K , typename V >
static persistent_ptr< leafmake (pointer_type parent, detail::pair< K, V > &&p)
 
template<typename K , typename V >
static persistent_ptr< leafmake (pointer_type parent, const detail::pair< K, V > &p)
 
template<typename K , typename V >
static persistent_ptr< leafmake (pointer_type parent, std::pair< K, V > &&p)
 
template<typename K , typename V >
static persistent_ptr< leafmake (pointer_type parent, const std::pair< K, V > &p)
 
static persistent_ptr< leafmake (pointer_type parent, const leaf &other)
 

Friends

class radix_tree< Key, Value, BytesView, MtMode >
 

Detailed Description

template<typename Key, typename Value, typename BytesView = bytes_view<Key>, bool MtMode = false>
struct pmem::obj::experimental::radix_tree< Key, Value, BytesView, MtMode >::leaf

This is the structure which 'holds' key/value pair.

The data is not stored as an object within this structure but rather just after the structure (using emplace new). This is done so that we can use inline_string and limit the number of allocations.

Constructors of the leaf structure mimics those of std::pair<const Key, Value>.


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