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.