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 38 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 43 of file LambdaStateListener.ixx.

43 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 48 of file LambdaStateListener.ixx.

48 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 53 of file LambdaStateListener.ixx.

53 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 80 of file LambdaStateListener.ixx.

81 OnExitCallback onExitCallback,
82 OnTransitionCallback onTransitionCallback,
83 OnEnterCallback onEnterCallback
84 ) : onExitCallback_(std::move(onExitCallback)),
85 onTransitionCallback_(std::move(onTransitionCallback)),
86 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 93 of file LambdaStateListener.ixx.

94 OnExitCallback onEnterCallback
95 ) : 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 102 of file LambdaStateListener.ixx.

103 OnTransitionCallback onTransitionCallback
104 ) : 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 123 of file LambdaStateListener.ixx.

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

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 111 of file LambdaStateListener.ixx.

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

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 135 of file LambdaStateListener.ixx.

137 const StateTransitionContext<StateType> transitionCtx
138 ) noexcept override {
139 if (onTransitionCallback_) {
140 onTransitionCallback_(updateContext, transitionCtx);
141 }
142 };

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 58 of file LambdaStateListener.ixx.

58 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 68 of file LambdaStateListener.ixx.

68 OnExitCallback onExitCallback_= nullptr;

onTransitionCallback_

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

Callback invoked during state transition.

Definition at line 63 of file LambdaStateListener.ixx.

63 OnTransitionCallback onTransitionCallback_= nullptr;

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


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.