PMDK C++ bindings
1.13.0-git107.g7e59f08f
This is the C++ bindings documentation for PMDK's libpmemobj.
|
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 | |
leaf & | operator= (const leaf &)=delete |
leaf & | operator= (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 >::leaf > | make (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 >::leaf > | make (pointer_type parent, K &&k, V &&v) |
template<typename K , typename... Args> | |
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leaf > | make_key_args (pointer_type parent, K &&k, Args &&... args) |
template<typename K , typename V > | |
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leaf > | make (pointer_type parent, detail::pair< K, V > &&p) |
template<typename K , typename V > | |
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leaf > | make (pointer_type parent, const detail::pair< K, V > &p) |
template<typename K , typename V > | |
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leaf > | make (pointer_type parent, std::pair< K, V > &&p) |
template<typename K , typename V > | |
persistent_ptr< typename radix_tree< Key, Value, BytesView, MtMode >::leaf > | make (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 >::leaf > | make (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< leaf > | make (pointer_type parent) |
template<typename... Args1, typename... Args2> | |
static persistent_ptr< leaf > | make (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< leaf > | make (pointer_type parent, K &&k, V &&v) |
static persistent_ptr< leaf > | make (pointer_type parent, const Key &k, const Value &v) |
template<typename K , typename... Args> | |
static persistent_ptr< leaf > | make_key_args (pointer_type parent, K &&k, Args &&... args) |
template<typename K , typename V > | |
static persistent_ptr< leaf > | make (pointer_type parent, detail::pair< K, V > &&p) |
template<typename K , typename V > | |
static persistent_ptr< leaf > | make (pointer_type parent, const detail::pair< K, V > &p) |
template<typename K , typename V > | |
static persistent_ptr< leaf > | make (pointer_type parent, std::pair< K, V > &&p) |
template<typename K , typename V > | |
static persistent_ptr< leaf > | make (pointer_type parent, const std::pair< K, V > &p) |
static persistent_ptr< leaf > | make (pointer_type parent, const leaf &other) |
Friends | |
class | radix_tree< Key, Value, BytesView, MtMode > |
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>.