Template Struct Manager
Defined in File mem-mgr.h
Inheritance Relationships
Base Types
public CE::Memory::AbstractBlockManager< void >(Template Struct AbstractBlockManager)public CE::State::Singleton< Manager< 1.6, 256 > >(Template Class Singleton)
Struct Documentation
-
template<double growth_factor_ = 1.6, int32_t growth_base_ = 256>
struct Manager : public CE::Memory::AbstractBlockManager<void>, public CE::State::Singleton<Manager<1.6, 256>> Recycles byte ranges, aligning/growing a request before checkout and tracking owners, sections, and pooled remainders through CE::Memory::AbstractBlockManager<void>.
Public operations serialize bookkeeping transitions across all collections; backing allocation, final frees, and reporting run outside those locks. Concurrent operations require a live facade or a previously retained release context. This does not synchronize user access to checked-out bytes or make raw collection edits safe.
Public Types
-
using release_context_type = ::CE::Memory::ByteReleaseContext
Public Functions
-
Manager() = default
-
inline ~Manager() override
-
inline std::weak_ptr<void> lifetime_token() const
Declaration:
[[nodiscard]]
-
inline std::shared_ptr<release_context_type> release_context() const
Declaration:
[[nodiscard]]
-
std::string stats()
Declaration:
[[nodiscard]]
-
void report_diagnostics() const noexcept
-
std::string debug_info()
Declaration:
[[nodiscard]]
-
void return_ptr(void *ptr)
-
void return_portion(void *ptr, std::size_t length)
-
::CE::Memory::HeapBlock checkout_chunk(size_t length, size_t alignment = 0, ::CE::Memory::FitPolicy fit = ::CE::Memory::exact, size_t growth_base = growth_base_, double growth_factor = growth_factor_)
Declaration:
[[nodiscard]]
-
void preallocate(size_t blocks, size_t width, size_t gb = growth_base_, double gf = growth_factor_, std::align_val_t alignment = std::align_val_t{64})
-
using release_context_type = ::CE::Memory::ByteReleaseContext