TypedCommandBuffer.ixx File
Compile-time typed command buffer with handler routing. More...
Included Headers
#include <cassert>
#include <tuple>
#include <vector>
#include <utility>
#include <helios.engine.mechanics.timing.TimerManager>
#include <helios.engine.mechanics.timing.types>
#include <helios.engine.state.commands.DelayedStateCommand>
#include <helios.engine.runtime.messaging.command.CommandBuffer>
#include <helios.engine.runtime.world.UpdateContext>
#include <helios.engine.runtime.world.GameWorld>
#include <helios.engine.state.components>
Namespaces Index
| namespace | helios |
| namespace | engine |
|
Main engine module aggregating core infrastructure and game systems. More... | |
| namespace | runtime |
|
Runtime infrastructure for game execution and lifecycle orchestration. More... | |
| namespace | messaging |
|
Communication infrastructure for commands and events. More... | |
| namespace | command |
|
Compile-time typed command buffering and handler routing. More... | |
Classes Index
| class | TypedCommandBuffer<CommandTypes> |
|
Compile-time typed command buffer with per-type queues and handler routing. More... | |
Description
Compile-time typed command buffer with handler routing.
File Listing
The file content with the documentation metadata removed is:
26using namespace helios::engine::runtime::world;
27using namespace helios::engine::state::commands;
28using namespace helios::engine::mechanics::timing;
29using namespace helios::engine::mechanics::timing::types;
31export namespace helios::engine::runtime::messaging::command {
43 concept ExecutableCommand = requires(Cmd const& c, UpdateContext& updateContext) {
91 class TypedCommandBuffer {
141 [[nodiscard]] bool shouldDelayCommand(const TimerState state) const noexcept {
142 return state == TimerState::Running;
154 [[nodiscard]] bool shouldDiscardCommand(const TimerState state) const noexcept {
155 return state != TimerState::Running && state != TimerState::Finished;;
165 [[nodiscard]] bool isDelayedCommandReady(const TimerState state) const noexcept {
166 return state == TimerState::Finished;
207 void flushCommandQueue(GameWorld& gameWorld, UpdateContext& updateContext) noexcept {
209 auto& timerManager = gameWorld.manager<TimerManager>();
219 auto& commandHandlerRegistry = gameWorld.commandHandlerRegistry();
313 void flush(GameWorld& gameWorld, UpdateContext& updateContext) noexcept {
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.