Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches

Capacity growth configuration. More...

#include <common.hpp>

Public Member Functions

constexpr size_t NextCapacity (size_t current_capacity, size_t min_capacity) const noexcept
 Computes the next block capacity for a grow request.

Static Public Member Functions

static constexpr GrowthPolicy Linear (size_t step, size_t max=std::numeric_limits< size_t >::max()) noexcept
 Creates a linear growth policy.
static constexpr GrowthPolicy Geometric (size_t numerator=2, size_t denominator=1, size_t max=std::numeric_limits< size_t >::max()) noexcept
 Creates a geometric growth policy.

Public Attributes

GrowthMode mode = GrowthMode::kGeometric
 Active growth strategy.
size_t linear_step = 0
 Bytes added per growth step when mode == kLinear.
size_t geometric_numerator = 2
 Capacity multiplier numerator for geometric growth.
size_t geometric_denominator = 1
 Capacity multiplier denominator for geometric growth.
size_t max_capacity = std::numeric_limits<size_t>::max()
 Maximum capacity ceiling for any growth operation.

Detailed Description

Capacity growth configuration.

This policy is shared by all PMR allocators in the memory module.

Definition at line 60 of file common.hpp.

Member Function Documentation

◆ Geometric()

constexpr GrowthPolicy helios::mem::GrowthPolicy::Geometric ( size_t numerator = 2,
size_t denominator = 1,
size_t max = std::numeric_limits<size_t>::max() )
inlinestaticnodiscardconstexprnoexcept

Creates a geometric growth policy.

Parameters
numeratorCapacity multiplier numerator
denominatorCapacity multiplier denominator
maxMaximum capacity ceiling
Returns
Geometric growth policy

Definition at line 96 of file common.hpp.

◆ Linear()

constexpr GrowthPolicy helios::mem::GrowthPolicy::Linear ( size_t step,
size_t max = std::numeric_limits<size_t>::max() )
inlinestaticnodiscardconstexprnoexcept

Creates a linear growth policy.

Parameters
stepBytes added per growth step
maxMaximum capacity ceiling
Returns
Linear growth policy

Definition at line 78 of file common.hpp.

◆ NextCapacity()

size_t helios::mem::GrowthPolicy::NextCapacity ( size_t current_capacity,
size_t min_capacity ) const
inlinenodiscardconstexprnoexcept

Computes the next block capacity for a grow request.

Parameters
current_capacityCurrent block or region capacity
min_capacityMinimum bytes required for the pending allocation
Returns
Next capacity, clamped to max_capacity; returns 0 when growth is disabled

Definition at line 115 of file common.hpp.

Member Data Documentation

◆ geometric_denominator

size_t helios::mem::GrowthPolicy::geometric_denominator = 1

Capacity multiplier denominator for geometric growth.

Definition at line 68 of file common.hpp.

◆ geometric_numerator

size_t helios::mem::GrowthPolicy::geometric_numerator = 2

Capacity multiplier numerator for geometric growth.

Definition at line 66 of file common.hpp.

◆ linear_step

size_t helios::mem::GrowthPolicy::linear_step = 0

Bytes added per growth step when mode == kLinear.

Definition at line 64 of file common.hpp.

◆ max_capacity

size_t helios::mem::GrowthPolicy::max_capacity = std::numeric_limits<size_t>::max()

Maximum capacity ceiling for any growth operation.

Definition at line 70 of file common.hpp.

◆ mode

GrowthMode helios::mem::GrowthPolicy::mode = GrowthMode::kGeometric

Active growth strategy.

Definition at line 62 of file common.hpp.