Helios Engine 0.1.0
A modular ECS based data-oriented C++23 game engine
 
Loading...
Searching...
No Matches
system_info.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <helios/core_pch.hpp>
4
8
9#include <cstddef>
10#include <string>
11#include <vector>
12
13namespace helios::app::details {
14
15/**
16 * @brief Metadata about a system.
17 * @details Contains static information about a system including its name, type identifier, access policy,
18 * execution statistics, ordering constraints, system set membership, and run conditions.
19 */
20struct SystemInfo {
21 std::string name; ///< System name (for debugging/profiling)
22 ecs::SystemTypeId type_id = 0; ///< Unique type identifier
23 app::AccessPolicy access_policy; ///< Access policy for validation
24 size_t execution_count = 0; ///< Number of times system has executed
25 std::vector<ecs::SystemTypeId> before_systems; ///< Systems that must run after this system
26 std::vector<ecs::SystemTypeId> after_systems; ///< Systems that must run before this system
27 std::vector<SystemSetId> system_sets; ///< System sets this system belongs to
28 std::vector<size_t> run_condition_indices; ///< Indices of run conditions in condition storage
29};
30
31} // namespace helios::app::details
size_t SystemTypeId
Type ID for systems.
Definition system.hpp:93
Metadata about a system.
std::vector< ecs::SystemTypeId > after_systems
Systems that must run before this system.
ecs::SystemTypeId type_id
Unique type identifier.
app::AccessPolicy access_policy
Access policy for validation.
std::vector< SystemSetId > system_sets
System sets this system belongs to.
std::vector< ecs::SystemTypeId > before_systems
Systems that must run after this system.
std::string name
System name (for debugging/profiling)
size_t execution_count
Number of times system has executed.
std::vector< size_t > run_condition_indices
Indices of run conditions in condition storage.