Skip to main content

LambdaStateListener Class Template

Lambda-based implementation of StateTransitionListener. More...

Declaration

template <typename StateType> class helios::engine::state::listeners::LambdaStateListener<StateType> { ... }

Base class

classStateTransitionListener<StateType>

Interface for observing state transitions. More...

Private Member Typedefs Index

template <typename StateType>
usingOnEnterCallback = std::function< void(helios::engine::runtime::world::UpdateContext &, const StateType)>

Callback type for state enter events. More...

template <typename StateType>
usingOnExitCallback = std::function< void(helios::engine::runtime::world::UpdateContext &, const StateType)>

Callback type for state exit events. More...

template <typename StateType>
usingOnTransitionCallback = std::function< void(helios::engine::runtime::world::UpdateContext &, const StateTransitionContext< StateType >)>

Callback type for state transition events. More...

Public Constructors Index

template <typename StateType>
LambdaStateListener (OnExitCallback onExitCallback, OnTransitionCallback onTransitionCallback, OnEnterCallback onEnterCallback)

Constructs a lambda state listener. More...

template <typename StateType>
LambdaStateListener (OnExitCallback onEnterCallback)

Constructs a listener with only an enter callback. More...

template <typename StateType>
LambdaStateListener (OnTransitionCallback onTransitionCallback)

Constructs a listener with only a transition callback. More...

Public Member Functions Index

template <typename StateType>
voidonStateExit (helios::engine::runtime::world::UpdateContext &updateContext, const StateType from) noexcept override

Called when exiting a state. More...

template <typename StateType>
voidonStateEnter (helios::engine::runtime::world::UpdateContext &updateContext, const StateType to) noexcept override

Called when entering a state. More...

template <typename StateType>
voidonStateTransition (helios::engine::runtime::world::UpdateContext &updateContext, const StateTransitionContext< StateType > transitionCtx) noexcept override

Called during a state transition. More...

Private Member Attributes Index

template <typename StateType>
OnEnterCallbackonEnterCallback_ = nullptr

Callback invoked when entering a state. More...

template <typename StateType>
OnTransitionCallbackonTransitionCallback_ = nullptr

Callback invoked during state transition. More...

template <typename StateType>
OnExitCallbackonExitCallback_ = nullptr

Callback invoked when exiting a state. More...

Description

Lambda-based implementation of StateTransitionListener.

Allows registering callbacks for state transition events without creating a dedicated listener class. Useful for simple reactions to state changes.

Template Parameters
StateType

The state enum type.

See Also

StateTransitionListener

See Also

StateManager

Definition at line 36 of file LambdaStateListener.ixx.

Private Member Typedefs

OnEnterCallback

template <typename StateType>
using helios::engine::state::listeners::LambdaStateListener< StateType >::OnEnterCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateType)>

Callback type for state enter events.

Definition at line 41 of file LambdaStateListener.ixx.

41 using OnEnterCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateType)>;

OnExitCallback

template <typename StateType>
using helios::engine::state::listeners::LambdaStateListener< StateType >::OnExitCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateType)>

Callback type for state exit events.

Definition at line 46 of file LambdaStateListener.ixx.

46 using OnExitCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateType)>;

OnTransitionCallback

template <typename StateType>
using helios::engine::state::listeners::LambdaStateListener< StateType >::OnTransitionCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateTransitionContext<StateType>)>

Callback type for state transition events.

Definition at line 51 of file LambdaStateListener.ixx.

51 using OnTransitionCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateTransitionContext<StateType>)>;

Public Constructors

LambdaStateListener()

template <typename StateType>
helios::engine::state::listeners::LambdaStateListener< StateType >::LambdaStateListener (OnExitCallback onExitCallback, OnTransitionCallback onTransitionCallback, OnEnterCallback onEnterCallback)
inline explicit

Constructs a lambda state listener.

Parameters
onExitCallback

Called when exiting a state.

onTransitionCallback

Called during the transition.

onEnterCallback

Called when entering a state.

Definition at line 78 of file LambdaStateListener.ixx.

79 OnExitCallback onExitCallback,
80 OnTransitionCallback onTransitionCallback,
81 OnEnterCallback onEnterCallback
82 ) : onExitCallback_(std::move(onExitCallback)),
83 onTransitionCallback_(std::move(onTransitionCallback)),
84 onEnterCallback_(std::move(onEnterCallback)) {}

LambdaStateListener()

template <typename StateType>
helios::engine::state::listeners::LambdaStateListener< StateType >::LambdaStateListener (OnExitCallback onEnterCallback)
inline explicit

Constructs a listener with only an enter callback.

Parameters
onEnterCallback

Called when entering a state.

Definition at line 91 of file LambdaStateListener.ixx.

92 OnExitCallback onEnterCallback
93 ) : onEnterCallback_(std::move(onEnterCallback)) {}

LambdaStateListener()

template <typename StateType>
helios::engine::state::listeners::LambdaStateListener< StateType >::LambdaStateListener (OnTransitionCallback onTransitionCallback)
inline explicit

Constructs a listener with only a transition callback.

Parameters
onTransitionCallback

Called during the transition.

Definition at line 100 of file LambdaStateListener.ixx.

101 OnTransitionCallback onTransitionCallback
102 ) : onTransitionCallback_(std::move(onTransitionCallback)) {}

Public Member Functions

onStateEnter()

template <typename StateType>
void helios::engine::state::listeners::LambdaStateListener< StateType >::onStateEnter (helios::engine::runtime::world::UpdateContext & updateContext, const StateType to)
inline noexcept virtual

Called when entering a state.

Parameters
updateContext

The current frame's update context.

to

The state being entered.

Definition at line 121 of file LambdaStateListener.ixx.

123 const StateType to
124 ) noexcept override {
125 if (onEnterCallback_) {
126 onEnterCallback_(updateContext, to);
127 }
128 }

Reference helios::registerComponents.

onStateExit()

template <typename StateType>
void helios::engine::state::listeners::LambdaStateListener< StateType >::onStateExit (helios::engine::runtime::world::UpdateContext & updateContext, const StateType from)
inline noexcept virtual

Called when exiting a state.

Parameters
updateContext

The current frame's update context.

from

The state being exited.

Definition at line 109 of file LambdaStateListener.ixx.

111 const StateType from
112 ) noexcept override {
113 if (onExitCallback_) {
114 onExitCallback_(updateContext, from);
115 }
116 }

Reference helios::registerComponents.

onStateTransition()

template <typename StateType>
void helios::engine::state::listeners::LambdaStateListener< StateType >::onStateTransition (helios::engine::runtime::world::UpdateContext & updateContext, const StateTransitionContext< StateType > transitionCtx)
inline noexcept virtual

Called during a state transition.

Parameters
updateContext

The current frame's update context.

transitionCtx

The complete transition context.

Definition at line 133 of file LambdaStateListener.ixx.

136 ) noexcept override {
137 if (onTransitionCallback_) {
138 onTransitionCallback_(updateContext, transitionCtx);
139 }
140 };

Reference helios::registerComponents.

Private Member Attributes

onEnterCallback_

template <typename StateType>
OnEnterCallback helios::engine::state::listeners::LambdaStateListener< StateType >::onEnterCallback_ = nullptr

Callback invoked when entering a state.

Definition at line 56 of file LambdaStateListener.ixx.

56 OnEnterCallback onEnterCallback_ = nullptr;

onExitCallback_

template <typename StateType>
OnExitCallback helios::engine::state::listeners::LambdaStateListener< StateType >::onExitCallback_ = nullptr

Callback invoked when exiting a state.

Definition at line 66 of file LambdaStateListener.ixx.

66 OnExitCallback onExitCallback_= nullptr;

onTransitionCallback_

template <typename StateType>
OnTransitionCallback helios::engine::state::listeners::LambdaStateListener< StateType >::onTransitionCallback_ = nullptr

Callback invoked during state transition.

Definition at line 61 of file LambdaStateListener.ixx.

61 OnTransitionCallback onTransitionCallback_= nullptr;

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


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.