Template Struct PoolState

Inheritance Relationships

Base Types

Struct Documentation

template<typename T>
struct PoolState : public CE::Memory::AbstractBlockManager<T>, public std::enable_shared_from_this<PoolState<T>>

Owns the object pool’s release operations and retains shared block bookkeeping.

Handles hold this context so their last release can merge a slot back into the pool after the Pool<T> facade is destroyed.

Public Functions

inline std::shared_ptr<typename ::CE::Memory::Objects::Constructor<T>::Context> construction_context() const

Declaration: [[nodiscard]]

template<typename ...Args>
std::vector<std::shared_ptr<T>> retrieve_objects(std::size_t N, Args... args)

Construct N objects; each returned handle retains this release state.

::CE::Memory::Block<T> retrieve_block(std::size_t N)

Reserve N unconstructed slots in one CE::Memory::Block.

void return_objects(T *p, std::size_t length)
void return_block(const ::CE::Memory::Block<T> &returned)
void release_owned(T *p, std::size_t length) noexcept

Release a known owned range from a destructor.

Invalid bookkeeping terminates rather than letting an exception escape a deleter.