ZXFoundation™ 26h2
Loading...
Searching...
No Matches
zxfoundation.scoms.table Module Reference

Data Structures

class  zxfoundation::scoms::scoms_table< T, N >
 Generic, generation-counted kernel object table. More...

Functions

template<lifecycle_state State = lifecycle_state::active>
auto acquire_ref (u32 id) noexcept -> kobject::robject< T, State >
 Look up by slot index and acquire a typed ref.
auto alloc (kobject::kobject_type requested_type=kobject::kobject_type::none) noexcept -> std::expected< kobject::robject< T, lifecycle_state::embryo >, lib::kernel_error >
 Allocate a slot, returning an embryo ref.
auto alloc_at (u32 id) noexcept -> std::expected< kobject::robject< T, lifecycle_state::embryo >, lib::kernel_error >
 Allocate a specific slot index, returning an embryo ref.
static constexpr auto capacity () noexcept -> u32
 Maximum capacity.
auto count () const noexcept -> u32
 Number of currently allocated (non-free) slots.
template<typename Pred>
auto destroy_if (Pred &&pred) noexcept -> u32
 Destroy all objects matching a predicate (no cleanup).
template<typename Pred, typename Cleanup>
auto destroy_if (Pred &&pred, Cleanup &&cleanup) noexcept -> u32
 Destroy all objects matching a predicate.
auto find_by_gen (u32 id, u32 gen) noexcept -> T *
 Look up by slot index + generation.
auto find_raw (u32 id) const noexcept -> const T *
auto find_raw (u32 id) noexcept -> T *
 Look up by slot index.
template<typename Fn>
auto for_each (Fn &&fn) noexcept -> u32
 Invoke fn for every live (non-free) object in the table.
auto init (kobject::kobject_type type) noexcept -> void
 Initialize the table.
auto initialized () const noexcept -> bool
 Is the table initialized?
auto release (u32 id) noexcept -> std::expected< void, lib::kernel_error >
 Release a slot back to the free-list.
auto slot (u32 id) const noexcept -> const T &
auto slot (u32 id) noexcept -> T &
 Direct slot access (no validity check — internal use only).

Files

file  zxfoundation/scoms/table.cxxm