|
engine-mk1
|
The abstract base class for a System. More...
#include <System.hpp>
Public Member Functions | |
| virtual rz::taskscheduler::Task | update (EntityMap &entities, double delta)=0 |
| Generates a TaskGraph used to update all relevant Component objects. More... | |
| virtual ComponentHandle | createComponent (ComponentType type, std::shared_ptr< void > tuplePtr)=0 |
| Creates a new Component in the ObjectPool. More... | |
| virtual bool | removeComponent (ComponentHandle ch)=0 |
| Removes a Component from the ObjectPool. More... | |
| template<class T , typename... Args> | |
| Handle | emplaceObject (Args...args) |
Calls emplace on the member ObjectPool with the given arguments. More... | |
| template<class T > | |
| T * | getObject (Handle handle) |
Calls get on the member ObjectPool with the given arguments. More... | |
| template<class T > | |
| void | removeObject (Handle handle) |
Calls erase on the member ObjectPool with the given arguments. More... | |
| void | registerHandler (rz::eventstream::EventType type, rz::eventstream::EventHandler handler) |
Calls registerHandler on the member EventStream with the given arguments. More... | |
| void | extendHandler (rz::eventstream::EventType type, rz::eventstream::EventHandler handler) |
Calls extendHandler on the member EventStream with the given arguments. More... | |
| void | processEvents () |
Calls processEvents on the member EventStream. More... | |
| void | pushEvents (const std::vector< rz::eventstream::Event > &events, rz::eventstream::StreamType streamType) |
Calls pushEvents on the member EventStream. More... | |
| std::vector< rz::eventstream::Event > | popEvents (rz::eventstream::StreamType streamType) |
Calls popEvents on the member EventStream. More... | |
| double | getInterval () noexcept |
| Gets the set interval (in ms) between updates for this System. More... | |
| double | getTaskGraph () noexcept |
| Gets the current TaskGraph of this System. More... | |
| void | setTaskScheduler (std::shared_ptr< rz::taskscheduler::TaskScheduler > taskScheduler) |
| Sets the TaskScheduler used by this System. More... | |
| rz::taskscheduler::TaskScheduler & | getTaskScheduler () |
| Gets a reference to the TaskScheduler used by this System. More... | |
| void | setParentTask (rz::taskscheduler::Task parentTask) |
| Sets the parent Task of this System. More... | |
| rz::taskscheduler::Task & | getParentTask () |
| Gets the parent Task of this System. More... | |
Protected Attributes | |
| UUID64 | _id |
| The unique id of this system. More... | |
| rz::objectpool::ObjectPool | _pool |
| The ObjectPool used to manage the memory of this System. More... | |
| double | _interval |
| The max interval (in seconds) between updates for this System. More... | |
| rz::eventstream::EventStream | _eventStream |
| The EventStream belonging to this System. More... | |
| std::set< ComponentType, ComponentTypeCmp > | _componentTypes |
| The set of ComponentTypes supported by this System. More... | |
| std::shared_ptr< rz::taskscheduler::TaskScheduler > | _taskScheduler |
| rz::taskscheduler::Task | _parentTask |
| EntityMap | _entities |
The abstract base class for a System.
|
pure virtual |
Creates a new Component in the ObjectPool.
|
inline |
Calls emplace on the member ObjectPool with the given arguments.
| void System::extendHandler | ( | rz::eventstream::EventType | type, |
| rz::eventstream::EventHandler | handler | ||
| ) |
Calls extendHandler on the member EventStream with the given arguments.
|
inlinenoexcept |
Gets the set interval (in ms) between updates for this System.
|
inline |
Calls get on the member ObjectPool with the given arguments.
|
inline |
Gets the parent Task of this System.
|
inlinenoexcept |
Gets the current TaskGraph of this System.
|
inline |
Gets a reference to the TaskScheduler used by this System.
| std::vector< Event > System::popEvents | ( | rz::eventstream::StreamType | streamType | ) |
Calls popEvents on the member EventStream.
| void System::processEvents | ( | ) |
Calls processEvents on the member EventStream.
| void System::pushEvents | ( | const std::vector< rz::eventstream::Event > & | events, |
| rz::eventstream::StreamType | streamType | ||
| ) |
Calls pushEvents on the member EventStream.
| void System::registerHandler | ( | rz::eventstream::EventType | type, |
| rz::eventstream::EventHandler | handler | ||
| ) |
Calls registerHandler on the member EventStream with the given arguments.
|
pure virtual |
Removes a Component from the ObjectPool.
|
inline |
Calls erase on the member ObjectPool with the given arguments.
|
inline |
Sets the parent Task of this System.
|
inline |
Sets the TaskScheduler used by this System.
|
pure virtual |
|
protected |
The set of ComponentTypes supported by this System.
|
protected |
The EventStream belonging to this System.
|
protected |
The unique id of this system.
|
protected |
The max interval (in seconds) between updates for this System.
|
protected |
The ObjectPool used to manage the memory of this System.
1.8.11