Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec > Class Template Reference

Persistent ordered map backed by a paged File_BPlus_Tree. More...

#include <tpl_file_bplus_map.H>

Collaboration diagram for Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >:
[legend]

Classes

class  Iterator
 Lazy iterator over ordered key/value pairs. More...
 
struct  Record
 
struct  Record_Codec
 
struct  Record_Compare
 

Public Types

using key_type = Key
 
using mapped_type = Value
 
using value_type = std::pair< Key, Value >
 
using tree_type = tree_impl_type
 
using open_mode_type = typename tree_type::open_mode_type
 

Public Member Functions

 Gen_File_BPlus_Map (std::string file_path, const bool auto_sync=true, const Compare &cmp=Compare())
 Open or create a persistent B+ Tree map for read-write access.
 
 Gen_File_BPlus_Map (std::string file_path, const open_mode_type open_mode, const bool auto_sync=true, const Compare &cmp=Compare())
 Open or create a persistent B+ Tree map with an explicit mode.
 
 Gen_File_BPlus_Map (const char *file_path, const bool auto_sync=true, const Compare &cmp=Compare())
 Open or create a persistent B+ Tree map for read-write access.
 
 Gen_File_BPlus_Map (const char *file_path, const open_mode_type open_mode, const bool auto_sync=true, const Compare &cmp=Compare())
 Open or create a persistent B+ Tree map with an explicit mode.
 
 Gen_File_BPlus_Map (const Gen_File_BPlus_Map &)=delete
 Copying is disabled.
 
Gen_File_BPlus_Mapoperator= (const Gen_File_BPlus_Map &)=delete
 Assignment is disabled.
 
 Gen_File_BPlus_Map (Gen_File_BPlus_Map &&)=delete
 Moving is disabled.
 
Gen_File_BPlus_Mapoperator= (Gen_File_BPlus_Map &&)=delete
 Move assignment is disabled.
 
const std::string & file_path () const noexcept
 Return the file path.
 
open_mode_type open_mode () const noexcept
 Return the open mode.
 
bool is_read_only () const noexcept
 Return whether the map handle is read-only.
 
bool auto_sync_enabled () const noexcept
 Return whether automatic synchronization is enabled.
 
void set_auto_sync (const bool enabled) noexcept
 Enable or disable automatic synchronization.
 
const Compare & key_comp () const noexcept
 Return the key comparator.
 
bool empty () const noexcept
 Return whether the map is empty.
 
size_t size () const noexcept
 Return the number of stored key/value pairs.
 
size_t height () const noexcept
 Return the current tree height.
 
size_t page_size_bytes () const noexcept
 Return the serialized page size of the backing tree.
 
size_t page_count () const noexcept
 Return the number of allocated pages.
 
std::uint64_t checkpoint_sequence () const noexcept
 Return the latest durable checkpoint sequence.
 
void sync () const
 Flush pending changes to the backing file.
 
void checkpoint () const
 Synonym for sync().
 
void reload ()
 Discard unsynchronized changes and reload the file.
 
void clear ()
 Remove every key/value pair from the map.
 
bool contains (const Key &key) const
 Return whether a key exists.
 
bool search (const Key &key) const
 Synonym for contains().
 
std::optional< Valuefind (const Key &key) const
 Return the mapped value associated with a key, if any.
 
Value at (const Key &key) const
 Return the mapped value associated with a key.
 
bool insert (const Key &key, const Value &value)
 Insert a new key/value pair if the key is not present.
 
bool insert_or_assign (const Key &key, const Value &value)
 Insert or overwrite a key/value pair.
 
bool remove (const Key &key)
 Remove a key and its mapped value, if present.
 
std::optional< value_typemin_item () const
 Return the smallest stored key/value pair.
 
std::optional< value_typemax_item () const
 Return the largest stored key/value pair.
 
std::optional< value_typelower_bound (const Key &key) const
 Return the first key/value pair whose key is not less than key.
 
std::optional< value_typeupper_bound (const Key &key) const
 Return the first key/value pair whose key is greater than key.
 
Array< value_typerange (const Key &first, const Key &last) const
 Collect all key/value pairs in the inclusive key range.
 
Array< Key > keys () const
 Materialize all keys in sorted order.
 
Array< Valuevalues () const
 Materialize all mapped values in key order.
 
Array< value_typeitems () const
 Materialize all key/value pairs in sorted order.
 
Iterator get_it () const noexcept
 Return a lazy iterator over all items in key order.
 
Iterator get_range_it (const Key &first, const Key &last) const
 Return a lazy iterator over an inclusive key range.
 
bool verify () const
 Verify the structural invariants of the backing tree.
 

Static Public Attributes

static constexpr auto Read_Write = tree_type::Read_Write
 
static constexpr auto Read_Only = tree_type::Read_Only
 

Private Types

using key_codec = KeyCodec
 
using value_codec = ValueCodec
 
using tree_impl_type = Gen_File_BPlus_Tree< Record, Record_Compare, MinDegree, Record_Codec >
 

Private Member Functions

bool equals_key (const Key &lhs, const Key &rhs) const
 
std::optional< Recordfind_record (const Key &key) const
 

Static Private Member Functions

static Record make_probe (const Key &key)
 
static Record make_record (const Key &key, const Value &value)
 
static std::pair< Key, Valueto_pair (const Record &record)
 
static Array< std::pair< Key, Value > > to_pairs (const Array< Record > &records)
 

Private Attributes

tree_impl_type tree_
 

Detailed Description

template<typename Key, typename Value, class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
requires StrictWeakOrder<Compare, Key>
class Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >

Persistent ordered map backed by a paged File_BPlus_Tree.

Gen_File_BPlus_Map stores unique keys together with mapped values in a persistent B+ Tree file. It reuses the same format, locking, WAL, recovery, and read-only semantics as Aleph::File_BPlus_Tree, while exposing range scans over key/value pairs.

Template Parameters
KeyStored key type.
ValueStored mapped-value type.
CompareStrict weak ordering used to sort keys.
MinDegreeMinimum degree t of the underlying persistent B+ Tree.
KeyCodecFixed-size codec used to persist keys.
ValueCodecFixed-size codec used to persist mapped values.
Warning
Key and Value must admit fixed-size portable codecs because map entries are serialized through the paged storage engine of Aleph::File_BPlus_Tree. The default codecs cover fixed-size arithmetic types and std::array; bounded strings can be supported with Aleph::detail::Paged_Bounded_String_Codec.

Generic paged persistent B+ Tree map with fixed-size records.

This class provides a map-like interface (associative keys to values) backed by a persistent Aleph::File_BPlus_Tree. It supports O(log n) access with on-disk persistence and efficient page caching.

Template Parameters
KeyType of unique keys.
ValueType of mapped values.
CompareStrict weak ordering used to sort keys.
MinDegreeMinimum degree t of the underlying persistent B+ Tree.
KeyCodecFixed-size codec used to persist keys.
ValueCodecFixed-size codec used to persist mapped values.

Definition at line 101 of file tpl_file_bplus_map.H.

Member Typedef Documentation

◆ key_codec

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::key_codec = KeyCodec
private

Definition at line 103 of file tpl_file_bplus_map.H.

◆ key_type

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::key_type = Key

Definition at line 227 of file tpl_file_bplus_map.H.

◆ mapped_type

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::mapped_type = Value

Definition at line 228 of file tpl_file_bplus_map.H.

◆ open_mode_type

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::open_mode_type = typename tree_type::open_mode_type

Definition at line 231 of file tpl_file_bplus_map.H.

◆ tree_impl_type

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_impl_type = Gen_File_BPlus_Tree<Record, Record_Compare, MinDegree, Record_Codec>
private

Definition at line 167 of file tpl_file_bplus_map.H.

◆ tree_type

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_type = tree_impl_type

Definition at line 230 of file tpl_file_bplus_map.H.

◆ value_codec

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::value_codec = ValueCodec
private

Definition at line 104 of file tpl_file_bplus_map.H.

◆ value_type

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
using Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::value_type = std::pair<Key, Value>

Definition at line 229 of file tpl_file_bplus_map.H.

Constructor & Destructor Documentation

◆ Gen_File_BPlus_Map() [1/6]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_BPlus_Map ( std::string  file_path,
const bool  auto_sync = true,
const Compare &  cmp = Compare() 
)
inlineexplicit

Open or create a persistent B+ Tree map for read-write access.

Parameters
file_pathPath to the backing file.
auto_syncIf true, successful mutations synchronize the file.
cmpComparison functor used to order keys.
Exceptions
std::runtime_errorIf the backing file cannot be used.
std::bad_allocIf the page cache cannot be allocated.

Definition at line 319 of file tpl_file_bplus_map.H.

◆ Gen_File_BPlus_Map() [2/6]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_BPlus_Map ( std::string  file_path,
const open_mode_type  open_mode,
const bool  auto_sync = true,
const Compare &  cmp = Compare() 
)
inlineexplicit

Open or create a persistent B+ Tree map with an explicit mode.

Parameters
file_pathPath to the backing file.
open_modeRead_Write or Read_Only.
auto_syncIf true, successful mutations synchronize the file.
cmpComparison functor used to order keys.
Exceptions
std::runtime_errorIf the backing file cannot be used.
std::bad_allocIf the page cache cannot be allocated.

Definition at line 332 of file tpl_file_bplus_map.H.

◆ Gen_File_BPlus_Map() [3/6]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_BPlus_Map ( const char file_path,
const bool  auto_sync = true,
const Compare &  cmp = Compare() 
)
inlineexplicit

Open or create a persistent B+ Tree map for read-write access.

Parameters
file_pathPath to the backing file.
auto_syncIf true, successful mutations synchronize the file.
cmpComparison functor used to order keys.
Exceptions
std::runtime_errorIf the backing file cannot be used.
std::bad_allocIf the page cache cannot be allocated.

Definition at line 345 of file tpl_file_bplus_map.H.

◆ Gen_File_BPlus_Map() [4/6]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_BPlus_Map ( const char file_path,
const open_mode_type  open_mode,
const bool  auto_sync = true,
const Compare &  cmp = Compare() 
)
inlineexplicit

Open or create a persistent B+ Tree map with an explicit mode.

Parameters
file_pathPath to the backing file.
open_modeRead_Write or Read_Only.
auto_syncIf true, successful mutations synchronize the file.
cmpComparison functor used to order keys.
Exceptions
std::runtime_errorIf the backing file cannot be used.
std::bad_allocIf the page cache cannot be allocated.

Definition at line 358 of file tpl_file_bplus_map.H.

◆ Gen_File_BPlus_Map() [5/6]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_BPlus_Map ( const Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec > &  )
delete

Copying is disabled.

◆ Gen_File_BPlus_Map() [6/6]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_BPlus_Map ( Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec > &&  )
delete

Moving is disabled.

Member Function Documentation

◆ at()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Value Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::at ( const Key &  key) const
inline

Return the mapped value associated with a key.

Parameters
keyKey to search.
Returns
Copy of the stored mapped value.
Exceptions
std::domain_errorIf the key is absent.
Anyexception propagated by Compare, Key, or Value.

Definition at line 546 of file tpl_file_bplus_map.H.

References ah_domain_error_if, Aleph::divide_and_conquer_partition_dp(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::find().

Referenced by TEST(), and TEST().

◆ auto_sync_enabled()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::auto_sync_enabled ( ) const
inlinenoexcept

Return whether automatic synchronization is enabled.

Returns
true if successful mutations call sync().
Exceptions
Nothing.

Definition at line 407 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::auto_sync_enabled(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ checkpoint()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
void Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::checkpoint ( ) const
inline

Synonym for sync().

Exceptions
std::runtime_errorIf the file cannot be synchronized.

Definition at line 486 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::checkpoint(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ checkpoint_sequence()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
std::uint64_t Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::checkpoint_sequence ( ) const
inlinenoexcept

Return the latest durable checkpoint sequence.

Returns
Monotonic checkpoint sequence stored by the backing tree.
Exceptions
Nothing.

Definition at line 470 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::checkpoint_sequence(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ clear()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
void Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::clear ( )
inline

Remove every key/value pair from the map.

Exceptions
std::runtime_errorIf the backing tree rejects the mutation.

Definition at line 502 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::clear(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ contains()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::contains ( const Key &  key) const
inline

Return whether a key exists.

Parameters
keyKey to search.
Returns
true if the key is present.
Exceptions
Anyexception propagated by Compare or Key.

Definition at line 512 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::find_record().

Referenced by Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::search().

◆ empty()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::empty ( ) const
inlinenoexcept

Return whether the map is empty.

Returns
true if empty, otherwise false.
Exceptions
Nothing.

Definition at line 434 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::empty(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ equals_key()

◆ file_path()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
const std::string & Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::file_path ( ) const
inlinenoexcept

Return the file path.

Returns
Constant reference to the backing file path.
Exceptions
Nothing.

Definition at line 380 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::file_path(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ find()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
std::optional< Value > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::find ( const Key &  key) const
inline

Return the mapped value associated with a key, if any.

Parameters
keyKey to search.
Returns
Stored mapped value or std::nullopt if missing.
Exceptions
Anyexception propagated by Compare, Key, or Value.

Definition at line 532 of file tpl_file_bplus_map.H.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::find_record().

Referenced by Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::at().

◆ find_record()

◆ get_it()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Iterator Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::get_it ( ) const
inlinenoexcept

Return a lazy iterator over all items in key order.

Returns
Iterator positioned at the first item, or exhausted if empty.
Exceptions
Nothing.

Definition at line 711 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::get_it(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

Referenced by TEST().

◆ get_range_it()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Iterator Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::get_range_it ( const Key &  first,
const Key &  last 
) const
inline

Return a lazy iterator over an inclusive key range.

Parameters
firstLower key endpoint, inclusive.
lastUpper key endpoint, inclusive.
Returns
Iterator positioned at the first item in the range.
Exceptions
std::invalid_argumentIf the range is invalid.

Definition at line 722 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::get_range_it(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

Referenced by TEST().

◆ height()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
size_t Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::height ( ) const
inlinenoexcept

Return the current tree height.

Returns
0 for an empty file, otherwise the number of page levels.
Exceptions
Nothing.

Definition at line 446 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::height(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ insert()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::insert ( const Key &  key,
const Value value 
)
inline

Insert a new key/value pair if the key is not present.

Parameters
keyKey to insert.
valueMapped value to associate with the key.
Returns
true if insertion happened, otherwise false.
Exceptions
std::runtime_errorIf the backing tree rejects the mutation.
std::bad_allocIf the page cache cannot grow.

Definition at line 561 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::insert(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_record(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

Referenced by TEST(), TEST(), TEST(), and TEST().

◆ insert_or_assign()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::insert_or_assign ( const Key &  key,
const Value value 
)
inline

Insert or overwrite a key/value pair.

Parameters
keyKey to insert or overwrite.
valueMapped value to store.
Returns
true if the key was newly inserted, false if it replaced an existing value.
Exceptions
std::runtime_errorIf the backing tree rejects the mutation.
std::bad_allocIf the page cache cannot grow.
Note
Crash-recovery limitation. When the key already exists the implementation issues two separate WAL-protected operations: tree_.remove(probe) followed by tree_.insert(record). Each individual operation is crash-safe (the WAL guarantees redo on the next open), but a process crash between the two leaves the key permanently deleted. File_BPlus_Tree does not currently expose a single-WAL- transaction replace primitive, so full atomicity of the pair cannot be guaranteed without adding such a primitive. Callers that require all-or-nothing replace semantics should wrap the two operations in their own application-level recovery logic.

Definition at line 585 of file tpl_file_bplus_map.H.

References ah_runtime_error_unless, Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::insert(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_record(), Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::remove(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

Referenced by TEST(), and TEST().

◆ is_read_only()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::is_read_only ( ) const
inlinenoexcept

Return whether the map handle is read-only.

Returns
true if opened in Read_Only mode.
Exceptions
Nothing.

Definition at line 398 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::is_read_only(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ items()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Array< value_type > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::items ( ) const
inline

Materialize all key/value pairs in sorted order.

Returns
Ordered array containing every stored key/value pair.
Exceptions
std::bad_allocIf the result array cannot grow.

Definition at line 702 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::keys(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pairs(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ key_comp()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
const Compare & Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::key_comp ( ) const
inlinenoexcept

Return the key comparator.

Returns
Constant reference to the key comparator.
Exceptions
Nothing.

Definition at line 425 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::key_comp(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ keys()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Array< Key > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::keys ( ) const
inline

Materialize all keys in sorted order.

Returns
Ordered array containing every stored key.
Exceptions
std::bad_allocIf the result array cannot grow.

Definition at line 674 of file tpl_file_bplus_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::keys(), Aleph::Array< T >::reserve(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ lower_bound()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
std::optional< value_type > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::lower_bound ( const Key &  key) const
inline

Return the first key/value pair whose key is not less than key.

Parameters
keyProbe key.
Returns
Matching lower bound or std::nullopt if none exists.
Exceptions
Anyexception propagated by Compare, Key, or Value.

Definition at line 637 of file tpl_file_bplus_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::lower_bound(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pair(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

Referenced by TEST().

◆ make_probe()

◆ make_record()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
static Record Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_record ( const Key &  key,
const Value value 
)
inlinestaticprivate

◆ max_item()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
std::optional< value_type > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::max_item ( ) const
inline

◆ min_item()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
std::optional< value_type > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::min_item ( ) const
inline

◆ open_mode()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
open_mode_type Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::open_mode ( ) const
inlinenoexcept

Return the open mode.

Returns
Read_Write or Read_Only.
Exceptions
Nothing.

Definition at line 389 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::open_mode(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ operator=() [1/2]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Gen_File_BPlus_Map & Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::operator= ( const Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec > &  )
delete

Assignment is disabled.

◆ operator=() [2/2]

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Gen_File_BPlus_Map & Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::operator= ( Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec > &&  )
delete

Move assignment is disabled.

◆ page_count()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
size_t Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::page_count ( ) const
inlinenoexcept

Return the number of allocated pages.

Returns
Page count in the backing tree.
Exceptions
Nothing.

Definition at line 461 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::page_count(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ page_size_bytes()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
size_t Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::page_size_bytes ( ) const
inlinenoexcept

Return the serialized page size of the backing tree.

Returns
Number of bytes used by each page record.
Exceptions
Nothing.

Definition at line 452 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::page_size_bytes(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ range()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Array< value_type > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::range ( const Key &  first,
const Key &  last 
) const
inline

Collect all key/value pairs in the inclusive key range.

Parameters
firstLower key endpoint, inclusive.
lastUpper key endpoint, inclusive.
Returns
Ordered array with every pair whose key lies in the range.
Exceptions
std::invalid_argumentIf the range is invalid.
std::bad_allocIf the result array cannot grow.

Definition at line 665 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::range(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pairs(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

Referenced by TEST(), and TEST().

◆ reload()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
void Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::reload ( )
inline

Discard unsynchronized changes and reload the file.

Exceptions
std::runtime_errorIf the file cannot be reopened or validated.

Definition at line 494 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::reload(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ remove()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::remove ( const Key &  key)
inline

Remove a key and its mapped value, if present.

Parameters
keyKey to erase.
Returns
true if the key existed and was removed.
Exceptions
std::runtime_errorIf the backing tree rejects the mutation.

Definition at line 603 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::remove(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ search()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::search ( const Key &  key) const
inline

Synonym for contains().

Parameters
keyKey to search.
Returns
true if the key is present.
Exceptions
Anyexception propagated by Compare or Key.

Definition at line 522 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::contains().

◆ set_auto_sync()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
void Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::set_auto_sync ( const bool  enabled)
inlinenoexcept

Enable or disable automatic synchronization.

Parameters
enabledNew auto-sync mode.
Exceptions
Nothing.

Definition at line 416 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::set_auto_sync(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ size()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
size_t Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::size ( ) const
inlinenoexcept

Return the number of stored key/value pairs.

Returns
Number of unique keys stored in the map.
Exceptions
Nothing.

Definition at line 440 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::size(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ sync()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
void Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::sync ( ) const
inline

Flush pending changes to the backing file.

Exceptions
std::runtime_errorIf the file cannot be synchronized.

Definition at line 478 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::sync(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ to_pair()

◆ to_pairs()

◆ upper_bound()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
std::optional< value_type > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::upper_bound ( const Key &  key) const
inline

◆ values()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
Array< Value > Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::values ( ) const
inline

Materialize all mapped values in key order.

Returns
Ordered array containing every stored mapped value.
Exceptions
std::bad_allocIf the result array cannot grow.

Definition at line 688 of file tpl_file_bplus_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::keys(), Aleph::Array< T >::reserve(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ verify()

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
bool Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::verify ( ) const
inline

Verify the structural invariants of the backing tree.

Returns
true if the underlying persistent tree is valid.
Exceptions
Anyexception propagated by the underlying comparator.

Definition at line 731 of file tpl_file_bplus_map.H.

References Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_, and Aleph::Gen_File_BPlus_Tree< Key, Compare, MinDegree, Codec >::verify().

Member Data Documentation

◆ Read_Only

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
constexpr auto Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Read_Only = tree_type::Read_Only
staticconstexpr

Definition at line 234 of file tpl_file_bplus_map.H.

◆ Read_Write

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
constexpr auto Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Read_Write = tree_type::Read_Write
staticconstexpr

Definition at line 233 of file tpl_file_bplus_map.H.

◆ tree_

template<typename Key , typename Value , class Compare = Aleph::less<Key>, size_t MinDegree = 16, typename KeyCodec = detail::Paged_Value_Codec<Key>, typename ValueCodec = detail::Paged_Value_Codec<Value>>
tree_impl_type Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_
private

Definition at line 177 of file tpl_file_bplus_map.H.

Referenced by Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::auto_sync_enabled(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::checkpoint(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::checkpoint_sequence(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::clear(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::empty(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::equals_key(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::file_path(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::find_record(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::get_it(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::get_range_it(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::height(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::insert(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::insert_or_assign(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::is_read_only(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::items(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::key_comp(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::keys(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::lower_bound(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::max_item(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::min_item(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::open_mode(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::page_count(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::page_size_bytes(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::range(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::reload(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::remove(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::set_auto_sync(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::size(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::sync(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::upper_bound(), Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::values(), and Aleph::Gen_File_BPlus_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::verify().


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