|
|
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).
|