xo-arena: DArenaHashMap move impl to xo::map namespace

This commit is contained in:
Roland Conybeare 2026-01-08 18:54:39 -05:00
commit 7ffb47bfc5
6 changed files with 18 additions and 16 deletions

View file

@ -16,7 +16,7 @@
#include <cstring>
namespace xo {
namespace mm {
namespace map {
#ifdef NOT_YET
enum class insert_error : int32_t {
/** sentinel **/
@ -654,7 +654,7 @@ namespace xo {
return true;
}
}
} /*namespace map*/
} /*namespace xo*/
/* end DArenaHashMap.hpp */

View file

@ -11,7 +11,7 @@
#include <cstring>
namespace xo {
namespace mm {
namespace map {
namespace detail {
/** @brief 16x 8-bit control bytes.
*
@ -77,7 +77,7 @@ namespace xo {
#endif
};
}
} /*namespace mm*/
} /*namespace map*/
} /*namespace xo*/
/* end ControlGroup.hpp */

View file

@ -8,7 +8,7 @@
#include "hashmap/DArenaHashMapUtil.hpp"
namespace xo {
namespace mm {
namespace map {
namespace detail {
template <typename Key,
@ -76,7 +76,7 @@ namespace xo {
};
}
} /*namespace mm*/
} /*namespace map*/
} /*namespace xo*/
/* end DArenaHashMapIterator.hpp */

View file

@ -8,7 +8,7 @@
#include <cstdint>
namespace xo {
namespace mm {
namespace map {
/** @class DArenaHashMapUtil
*
* @pre
@ -103,7 +103,7 @@ namespace xo {
return std::make_pair(ngx, ng);;
}
};
} /*namespace mm*/
} /*namespace map*/
} /*namespace xo*/
/* end DArenaHashMapUtil.hpp */

View file

@ -9,7 +9,7 @@
#include "hashmap/ControlGroup.hpp"
namespace xo {
namespace mm {
namespace map {
namespace detail {
template <typename Key,
typename Value>
@ -17,6 +17,8 @@ namespace xo {
public:
using value_type = std::pair<const Key, Value>;
using group_type = detail::ControlGroup;
using control_vector_type = xo::mm::DArenaVector<uint8_t>;
using slot_vector_type = xo::mm::DArenaVector<value_type>;
public:
/** group_exp2: number of groups {x, 2^x} **/
@ -26,8 +28,8 @@ namespace xo {
n_group_exponent_{group_exp2.first},
n_group_{group_exp2.second},
n_slot_{group_exp2.second * c_group_size},
control_{DArenaVector<uint8_t>::map(ArenaConfig{.size_ = control_size(n_slot_)})},
slots_{DArenaVector<value_type>::map(ArenaConfig{.size_ = n_slot_ * sizeof(value_type)})}
control_{control_vector_type::map(xo::mm::ArenaConfig{.size_ = control_size(n_slot_)})},
slots_{slot_vector_type::map(xo::mm::ArenaConfig{.size_ = n_slot_ * sizeof(value_type)})}
{
/* here: arenas have allocated address range, but no committed memory yet */
@ -121,12 +123,12 @@ namespace xo {
/** control_[] partitioned into groups of
* c_group_size (16) consecutive elements
**/
DArenaVector<uint8_t> control_;
control_vector_type control_;
/** slots_[] holds {key,value} pairs **/
DArenaVector<value_type> slots_;
slot_vector_type slots_;
};
}
} /*namespace mm*/
} /*namespace map*/
} /*namespace xo*/
/* end HashMapStore.hpp */

View file

@ -11,8 +11,8 @@
#include <catch2/catch.hpp>
namespace xo {
using xo::mm::DArenaHashMapUtil;
using xo::mm::DArenaHashMap;
using xo::map::DArenaHashMapUtil;
using xo::map::DArenaHashMap;
using xo::rng::random_seed;
using xo::rng::xoshiro256ss;
using utest::UtestTools;