Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
sub_app.hpp File Reference
#include <helios/app/details/profile.hpp>
#include <helios/app/schedules.hpp>
#include <helios/assert.hpp>
#include <helios/async/executor.hpp>
#include <helios/compiler/compiler.hpp>
#include <helios/ecs/message/message.hpp>
#include <helios/ecs/resource/resource.hpp>
#include <helios/ecs/schedule/schedule.hpp>
#include <helios/ecs/schedule/scheduler.hpp>
#include <helios/ecs/schedule/stage.hpp>
#include <helios/ecs/schedule/system_set.hpp>
#include <helios/ecs/system/system.hpp>
#include <helios/ecs/world.hpp>
#include <helios/log/logger.hpp>
#include <helios/utils/type_info.hpp>
#include <atomic>
#include <concepts>
#include <cstddef>
#include <functional>
#include <mutex>
#include <optional>
#include <string>
#include <string_view>
#include <utility>

Go to the source code of this file.

Classes

class  helios::app::SubApp
 A sub-application with its own ECS world and scheduler. More...

Namespaces

namespace  helios
namespace  helios::app

Concepts

concept  helios::app::SubAppTrait
 Trait to identify valid sub-app types.
concept  helios::app::SubAppWithNameTrait
 Concept for sub-apps that provide custom names.
concept  helios::app::OverlappingUpdatesSubAppTrait
 Concept for sub-apps that allow skipping extraction while updating.
concept  helios::app::SubAppWithMaxOverlappingUpdatesTrait
 Concept for sub-apps with a maximum extraction-skip budget.
concept  helios::app::AsyncSubAppTrait
 Concept for sub-apps that run updates on a background loop.

Typedefs

using helios::app::SubAppTypeIndex = utils::TypeIndex
 Type index for sub-apps.
using helios::app::SubAppTypeId = utils::TypeId
 Type id for sub-apps.

Functions

template<SubAppTrait T>
constexpr std::string_view helios::app::SubAppNameOf (const T &sub_app={}) noexcept
 Returns the name of the sub-app.
template<SubAppTrait T>
consteval bool helios::app::IsSubAppAllowsOverlappingUpdates (const T &={}) noexcept
 Returns whether the sub-app allows extraction skips while updating.
template<OverlappingUpdatesSubAppTrait T>
consteval size_t helios::app::SubAppMaxOverlappingUpdates (const T &={}) noexcept
 Returns the maximum consecutive extraction skips for the sub-app.
template<SubAppTrait T>
consteval bool helios::app::IsSubAppAsync (const T &={}) noexcept
 Returns whether the sub-app runs updates on a background loop.