Skip to main content

Model Class Template

Typed wrapper that adapts a concrete manager to the Concept interface. More...

Declaration​

template <typename T> class helios::engine::runtime::world::Manager::Model<T> { ... }

Base class​

classhelios::engine::runtime::world::Manager::Concept

Public Constructors Index​

template <typename T>
Model (T sys)

Public Member Functions Index​

template <typename T>
voidflush (UpdateContext &updateContext) noexcept override
template <typename T>
voidflushParallel (UpdateContext &updateContext) noexcept override

Delegates to the wrapped manager's flushParallel() method. More...

template <typename T>
voidinit (CommandHandlerRegistry &commandHandlerRegistry) noexcept override
template <typename T>
voidreset () noexcept override
template <typename T>
void *underlying () noexcept override
template <typename T>
const void *underlying () const noexcept override

Private Member Attributes Index​

template <typename T>
Tmanager_

Description​

Typed wrapper that adapts a concrete manager to the Concept interface.

Template Parameters
T

The concrete manager type, must satisfy IsManagerLike<T>.

Definition at line 87 of file Manager.ixx.

Public Constructors​

Model()​

template <typename T>
helios::engine::runtime::world::Manager::Model< T >::Model (T sys)
inline explicit

Definition at line 92 of file Manager.ixx.

92 explicit Model(T sys) : manager_(std::move(sys)) {}

Public Member Functions​

flush()​

template <typename T>
void helios::engine::runtime::world::Manager::Model< T >::flush (UpdateContext & updateContext)
inline noexcept

Definition at line 94 of file Manager.ixx.

94 void flush(UpdateContext& updateContext) noexcept override {
95 manager_.flush(updateContext);
96 }

flushParallel()​

template <typename T>
void helios::engine::runtime::world::Manager::Model< T >::flushParallel (UpdateContext & updateContext)
inline noexcept

Delegates to the wrapped manager's flushParallel() method.

Will fall back to flush() if flushParallel() is not implemented by the underlying manager.

Parameters
updateContext

The current frame's update context.

Precondition

Manager must be initialized (pimpl_ != nullptr).

Definition at line 108 of file Manager.ixx.

108 void flushParallel(UpdateContext& updateContext) noexcept override {
109 if constexpr (HasFlushParallel<T>) {
110 manager_.flushParallel(updateContext);
111 return;
112 }
113 assert(false && "Manager does not support flushParallel");
114 manager_.flush(updateContext);
115 }

init()​

template <typename T>
void helios::engine::runtime::world::Manager::Model< T >::init (CommandHandlerRegistry & commandHandlerRegistry)
inline noexcept

Definition at line 117 of file Manager.ixx.

117 void init(CommandHandlerRegistry& commandHandlerRegistry) noexcept override {
118 if constexpr (HasInit<T>) {
119 manager_.init(commandHandlerRegistry);
120 }
121 }

reset()​

template <typename T>
void helios::engine::runtime::world::Manager::Model< T >::reset ()
inline noexcept

Definition at line 122 of file Manager.ixx.

122 void reset() noexcept override {
123 if constexpr (HasReset<T>) {
124 manager_.reset();
125 }
126 }

underlying()​

template <typename T>
void * helios::engine::runtime::world::Manager::Model< T >::underlying ()
inline noexcept

Definition at line 128 of file Manager.ixx.

128 void* underlying() noexcept override {
129 return &manager_;
130 }

underlying()​

template <typename T>
const void * helios::engine::runtime::world::Manager::Model< T >::underlying ()
inline noexcept

Definition at line 132 of file Manager.ixx.

132 const void* underlying() const noexcept override {
133 return &manager_;
134 }

Private Member Attributes​

manager_​

template <typename T>
T helios::engine::runtime::world::Manager::Model< T >::manager_

Definition at line 88 of file Manager.ixx.

88 T manager_;

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


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.