Template Struct Pool

Inheritance Relationships

Base Types

Struct Documentation

template<typename T>
struct Pool : public CE::Memory::AbstractBlockManager<T>, public CE::State::Singleton<Pool<T>>

Singleton entry point for allocating objects.

Existing manager methods remain available; release_context() gives handles a retained PoolState.

Public Types

using release_context_type = ::CE::Memory::Objects::PoolState<T>

Public Functions

inline Pool()
inline std::shared_ptr<release_context_type> release_context() const

Declaration: [[nodiscard]]

Retain the release state without requiring a later singleton lookup.

template<typename ...Args>
inline std::vector<std::shared_ptr<T>> retrieve_objects(std::size_t N, Args... args)
inline ::CE::Memory::Block<T> retrieve_block(std::size_t N)
inline void return_objects(T *p, std::size_t length)
inline void return_block(const ::CE::Memory::Block<T> &block)
inline virtual void cull(std::chrono::minutes age) override
inline virtual void release_culled() override