Skip to main content

SchedulerBuilder Class

Builder for configuring and registering SpawnSchedulers. More...

Declaration

class helios::engine::builder::spawnSystem::builders::SchedulerBuilder { ... }

Public Constructors Index

SchedulerBuilder (helios::engine::runtime::spawn::SpawnManager &spawnManager)

Constructs a SchedulerBuilder. More...

Public Member Functions Index

template <typename... Configs>
voiddefaultScheduler (Configs &&... configs)

Creates and registers a DefaultSpawnScheduler with the given rules. More...

template <typename... Configs>
voidcyclicScheduler (Configs &&... configs)

Creates and registers a CyclicSpawnScheduler with the given rules. More...

voidcustomScheduler (std::unique_ptr< helios::engine::runtime::spawn::scheduling::SpawnScheduler > scheduler)

Registers a custom scheduler directly. More...

Private Member Functions Index

template <typename Scheduler, typename... Configs>
voidaddRules (Scheduler &scheduler, Configs &&... configs)

Adds rules from a parameter pack to a scheduler. More...

Private Member Attributes Index

helios::engine::runtime::spawn::SpawnManager &spawnManager_

The spawn manager to register schedulers with. More...

Description

Builder for configuring and registering SpawnSchedulers.

Provides factory methods for creating default and cyclic schedulers, and adding rules to them via fluent SchedulerConfig.

Definition at line 29 of file SchedulerBuilder.ixx.

Public Constructors

SchedulerBuilder()

helios::engine::builder::spawnSystem::builders::SchedulerBuilder::SchedulerBuilder (helios::engine::runtime::spawn::SpawnManager & spawnManager)
inline explicit

Constructs a SchedulerBuilder.

Parameters
spawnManager

The spawn manager to register schedulers with.

Definition at line 58 of file SchedulerBuilder.ixx.

60 ) : spawnManager_(spawnManager) {}

Public Member Functions

customScheduler()

void helios::engine::builder::spawnSystem::builders::SchedulerBuilder::customScheduler (std::unique_ptr< helios::engine::runtime::spawn::scheduling::SpawnScheduler > scheduler)
inline

Registers a custom scheduler directly.

Parameters
scheduler

Ownership is transferred.

Definition at line 103 of file SchedulerBuilder.ixx.

104 std::unique_ptr<helios::engine::runtime::spawn::scheduling::SpawnScheduler> scheduler
105 ) {
106 spawnManager_.addScheduler(std::move(scheduler));
107 }

cyclicScheduler()

template <typename... Configs>
void helios::engine::builder::spawnSystem::builders::SchedulerBuilder::cyclicScheduler (Configs &&... configs)
inline

Creates and registers a CyclicSpawnScheduler with the given rules.

The number of rules determines the template parameter N.

Template Parameters
Configs

SchedulerConfig parameter pack.

Parameters
configs

Rule configurations to add in cycle order.

Definition at line 87 of file SchedulerBuilder.ixx.

87 void cyclicScheduler(Configs&&... configs) {
88 constexpr std::size_t N = sizeof...(Configs);
89
90 auto scheduler = std::make_unique<
92
93 addRules(*scheduler, std::forward<Configs>(configs)...);
94
95 spawnManager_.addScheduler(std::move(scheduler));
96 }

defaultScheduler()

template <typename... Configs>
void helios::engine::builder::spawnSystem::builders::SchedulerBuilder::defaultScheduler (Configs &&... configs)
inline

Creates and registers a DefaultSpawnScheduler with the given rules.

Template Parameters
Configs

SchedulerConfig parameter pack.

Parameters
configs

Rule configurations to add.

Definition at line 69 of file SchedulerBuilder.ixx.

69 void defaultScheduler(Configs&&... configs) {
70 auto scheduler = std::make_unique<
72
73 addRules(*scheduler, std::forward<Configs>(configs)...);
74
75 spawnManager_.addScheduler(std::move(scheduler));
76 }

Private Member Functions

addRules()

template <typename Scheduler, typename... Configs>
void helios::engine::builder::spawnSystem::builders::SchedulerBuilder::addRules (Scheduler & scheduler, Configs &&... configs)
inline

Adds rules from a parameter pack to a scheduler.

Template Parameters
Scheduler

The scheduler type.

Configs

The SchedulerConfig parameter pack.

Parameters
scheduler

The scheduler to add rules to.

configs

The rule configurations.

Definition at line 45 of file SchedulerBuilder.ixx.

45 void addRules(Scheduler& scheduler, Configs&&... configs) {
46 (scheduler.addRule(
47 configs.profileId(), configs.build()
48 ), ...);
49 }

Private Member Attributes

spawnManager_

helios::engine::runtime::spawn::SpawnManager& helios::engine::builder::spawnSystem::builders::SchedulerBuilder::spawnManager_

The spawn manager to register schedulers with.

Definition at line 34 of file SchedulerBuilder.ixx.


The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.