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

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

#include <tpl_file_b_map.H>

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

Classes

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_B_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_B_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_B_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_B_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_B_Map (const Gen_File_B_Map &)=delete
 Copying is disabled.
 
Gen_File_B_Mapoperator= (const Gen_File_B_Map &)=delete
 Assignment is disabled.
 
 Gen_File_B_Map (Gen_File_B_Map &&)=delete
 Moving is disabled.
 
Gen_File_B_Mapoperator= (Gen_File_B_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< 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.
 
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_B_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)
 
static const charvalidated_path (const char *p)
 

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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >

Persistent ordered map backed by a paged File_B_Tree.

Gen_File_B_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_B_Tree.

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_B_Tree. The default codecs cover fixed-size arithmetic types and std::array; bounded strings can be supported with Aleph::detail::Paged_Bounded_String_Codec.
Note
Thread-safety: const observers (accessors, find, contains, at, min_item, max_item, bounds, and materialization methods) are safe for concurrent access from multiple readers when the map is opened in Read_Only mode. Mutating methods (insert, insert_or_assign, remove, clear, sync, checkpoint, reload, set_auto_sync) require external synchronization. No method is individually atomic with respect to the backing file unless auto_sync is enabled or sync() is called explicitly after mutation.

Definition at line 96 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::key_codec = KeyCodec
private

Definition at line 98 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::key_type = Key

Definition at line 228 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::mapped_type = Value

Definition at line 229 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::open_mode_type = typename tree_type::open_mode_type

Definition at line 232 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_impl_type = Gen_File_B_Tree<Record, Record_Compare, MinDegree, Record_Codec>
private

Definition at line 162 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_type = tree_impl_type

Definition at line 231 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::value_codec = ValueCodec
private

Definition at line 99 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::value_type = std::pair<Key, Value>

Definition at line 230 of file tpl_file_b_map.H.

Constructor & Destructor Documentation

◆ Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_B_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.
Note
O(page_count) I/O to read the file header and root page.

Definition at line 246 of file tpl_file_b_map.H.

◆ Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_B_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.
Note
O(page_count) I/O to read the file header and root page.

Definition at line 260 of file tpl_file_b_map.H.

◆ Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_B_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.
Precondition
file_path != nullptr.
Exceptions
std::invalid_argumentIf file_path is null or otherwise invalid (propagated from validated_path())
std::runtime_errorIf the backing file cannot be used.
std::bad_allocIf the page cache cannot be allocated.
Note
O(page_count) I/O to read the file header and root page.

Definition at line 276 of file tpl_file_b_map.H.

References ah_invalid_argument_if, and Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::file_path().

◆ Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_B_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.
Precondition
file_path != nullptr.
Exceptions
std::invalid_argumentIf file_path is null or otherwise invalid (propagated from validated_path())
std::runtime_errorIf the backing file cannot be used.
std::bad_allocIf the page cache cannot be allocated.
Note
O(page_count) I/O to read the file header and root page.

Definition at line 295 of file tpl_file_b_map.H.

References ah_invalid_argument_if, and Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::file_path().

◆ Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_B_Map ( const Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec > &  )
delete

Copying is disabled.

◆ Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Gen_File_B_Map ( Gen_File_B_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_B_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.
Note
O(log n) with I/O per page traversed.

Definition at line 508 of file tpl_file_b_map.H.

References ah_domain_error_if, Aleph::divide_and_conquer_partition_dp(), and Aleph::Gen_File_B_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_B_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.
Note
O(1).

Definition at line 351 of file tpl_file_b_map.H.

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

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

◆ 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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::checkpoint ( ) const
inline

Synonym for sync().

Exceptions
std::runtime_errorIf the file cannot be synchronized.
Note
O(dirty pages) I/O. See sync().

Definition at line 441 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::checkpoint(), and Aleph::Gen_File_B_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_B_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.
Note
O(1).

Definition at line 422 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::checkpoint_sequence(), and Aleph::Gen_File_B_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_B_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.
Note
O(n) I/O. Requires external synchronization; call sync() afterwards for durability when auto_sync is disabled.

Definition at line 460 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::clear(), and Aleph::Gen_File_B_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_B_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 copies.
Note
O(log n) with I/O per page traversed.

Definition at line 471 of file tpl_file_b_map.H.

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

Referenced by Aleph::Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::empty ( ) const
inlinenoexcept

Return whether the map is empty.

Returns
true if empty, otherwise false.
Exceptions
Nothing.
Note
O(1).

Definition at line 381 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::empty(), and Aleph::Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::file_path ( ) const
inlinenoexcept

◆ 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_B_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.
Note
O(log n) with I/O per page traversed.

Definition at line 493 of file tpl_file_b_map.H.

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

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

◆ find_record()

◆ 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_B_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.
Note
O(1).

Definition at line 395 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::height(), and Aleph::Gen_File_B_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_B_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.
Note
O(log n) I/O. Durable after return when auto_sync is enabled; otherwise call sync() explicitly.

Definition at line 525 of file tpl_file_b_map.H.

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

Referenced by 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_B_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 note. When the key already exists the implementation suppresses auto_sync for the tree_.remove(probe) + tree_.insert(record) pair so both operations are batched into a single WAL write; the pair is either both present or both absent after recovery. A crash before the final sync() call leaves the key with its old value (WAL replay re-applies the last complete transaction). Callers that require strict all-or-nothing durability should call sync() explicitly after insert_or_assign returns.

Definition at line 547 of file tpl_file_b_map.H.

References ah_runtime_error_unless, Aleph::and, Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::auto_sync_enabled(), Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::equals_key(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::insert(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::lower_bound(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_record(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::remove(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::set_auto_sync(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::sync(), and Aleph::Gen_File_B_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_B_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.
Note
O(1).

Definition at line 341 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::is_read_only(), and Aleph::Gen_File_B_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_B_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.
Note
O(n) time and space.

Definition at line 691 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::keys(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pairs(), and Aleph::Gen_File_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::key_comp ( ) const
inlinenoexcept

Return the key comparator.

Returns
Constant reference to the key comparator.
Exceptions
Nothing.
Note
O(1).

Definition at line 371 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::key_comp(), and Aleph::Gen_File_B_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_B_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.
Note
O(n) time and space.

Definition at line 661 of file tpl_file_b_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::keys(), Aleph::Array< T >::reserve(), and Aleph::Gen_File_B_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_B_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.
Note
O(log n) with I/O per page traversed.

Definition at line 634 of file tpl_file_b_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::lower_bound(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pair(), and Aleph::Gen_File_B_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_B_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::max_item ( ) const
inline

Return the largest stored key/value pair.

Returns
Largest pair or std::nullopt if empty.
Exceptions
Anyexception propagated by Key or Value.
Note
O(log n) with I/O per page traversed.

Definition at line 620 of file tpl_file_b_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::max_key(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pair(), and Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

◆ 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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::min_item ( ) const
inline

Return the smallest stored key/value pair.

Returns
Smallest pair or std::nullopt if empty.
Exceptions
Anyexception propagated by Key or Value.
Note
O(log n) with I/O per page traversed.

Definition at line 607 of file tpl_file_b_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::min_key(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pair(), and Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_.

Referenced by TEST().

◆ 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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::open_mode ( ) const
inlinenoexcept

Return the open mode.

Returns
Read_Write or Read_Only.
Exceptions
Nothing.
Note
O(1).

Definition at line 331 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::open_mode(), and Aleph::Gen_File_B_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_B_Map & Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::operator= ( const Gen_File_B_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_B_Map & Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::operator= ( Gen_File_B_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_B_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.
Note
O(1).

Definition at line 412 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::page_count(), and Aleph::Gen_File_B_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_B_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.
Note
O(1).

Definition at line 402 of file tpl_file_b_map.H.

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

◆ 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_B_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.
Note
O(n) I/O where n is the number of stored records.

Definition at line 450 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::reload(), and Aleph::Gen_File_B_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_B_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.
Note
O(log n) I/O. Durable after return when auto_sync is enabled; otherwise call sync() explicitly.

Definition at line 597 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::remove(), and Aleph::Gen_File_B_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_B_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 copies.
Note
O(log n) with I/O per page traversed.

Definition at line 482 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_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_B_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.
Note
O(1). Requires external synchronization.

Definition at line 361 of file tpl_file_b_map.H.

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

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

◆ 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_B_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.
Note
O(1).

Definition at line 388 of file tpl_file_b_map.H.

References Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::size(), and Aleph::Gen_File_B_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_B_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.
Note
O(dirty pages) I/O. Not atomic; requires external synchronization. Durability is guaranteed only after this call returns.

Definition at line 432 of file tpl_file_b_map.H.

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

Referenced by Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::insert_or_assign(), and TEST().

◆ to_pair()

◆ to_pairs()

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 Array< std::pair< Key, Value > > Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pairs ( const Array< Record > &  records)
inlinestaticprivate

◆ 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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::upper_bound ( const Key &  key) const
inline

Return the first key/value pair whose key is greater than key.

Parameters
keyProbe key.
Returns
Matching upper bound or std::nullopt if none exists.
Exceptions
Anyexception propagated by Compare, Key, or Value.
Note
O(log n) with I/O per page traversed.

Definition at line 648 of file tpl_file_b_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::make_probe(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::to_pair(), Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_, and Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::upper_bound().

◆ validated_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>>
static const char * Aleph::Gen_File_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::validated_path ( const char p)
inlinestaticprivate

Definition at line 221 of file tpl_file_b_map.H.

References ah_invalid_argument_if.

◆ 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_B_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.
Note
O(n) time and space.

Definition at line 676 of file tpl_file_b_map.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::Gen_File_B_Tree< Key, Compare, MinDegree, Codec >::keys(), Aleph::Array< T >::reserve(), and Aleph::Gen_File_B_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_B_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.
Note
O(n) I/O — reads every page.

Definition at line 702 of file tpl_file_b_map.H.

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

Referenced by TEST().

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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Read_Only = tree_type::Read_Only
staticconstexpr

Definition at line 235 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::Read_Write = tree_type::Read_Write
staticconstexpr

Definition at line 234 of file tpl_file_b_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_B_Map< Key, Value, Compare, MinDegree, KeyCodec, ValueCodec >::tree_
private

Definition at line 172 of file tpl_file_b_map.H.

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


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