template<CacheTier Tier>
ComponentCache class final

Concrete SoA ring-buffer cache parameterised by storage tier.

Registry instantiates ComponentCache<Volatile> and ComponentCache<Temporal>. All callers use the ComponentCacheBase* interface so they are decoupled from the tier template.

CRTP overrides per tier:

  • GetFrameCount — Volatile: 3 (triple-buffer); Temporal: Config->TemporalFrameCount.
  • GetCacheTier — returns the CacheTier enum value.
  • GetLabel"Volatile" or "Temporal" for logging.

Base classes

template<typename Derived>
class ComponentCacheImpl<ComponentCache<Tier>>
CRTP middle layer that routes Initialize() to tier-specific overrides.

Public static functions

static auto GetCacheTier() -> CacheTier constexpr
static auto GetLabel() -> const char* constexpr
static auto GetNextWriteFrameImpl(const ComponentCacheBase* base) -> uint32_t
static void PropagateFrameImpl(ComponentCacheBase* base, TrinyxJobs::JobCounter& counter)

Public functions

auto GetFrameCount(const EngineConfig* Config) const -> uint32_t