Base for traits that declare a manifest.
More...
#include <Trait.h>
|
| std::enable_if_t<!std::is_void_v< T >, T > | getState () const |
| | Return the current state value.
|
| std::enable_if_t<!std::is_void_v< T >, bool > | isState (T state) const |
| | Return true if currently in state.
|
| std::enable_if_t<!std::is_void_v< T > > | onStateEnter (std::function< void(T)> callback) |
| | Register a callback invoked after each state transition.
|
| std::enable_if_t<!std::is_void_v< T > > | onStateExit (std::function< void(T)> callback) |
| | Register a callback invoked before each state transition.
|
| std::enable_if_t<!std::is_void_v< T > > | setState (T newState) |
| | Transition to a new state.
|
template<typename
Manifest>
class ml::TraitWith< Manifest >
Base for traits that declare a manifest.
TraitWith<Manifest> combines the Trait marker with Customizable<Manifest>, wiring the trait's Flags and State enums into the GatherFlags / GatherStates machinery so they are automatically included in the flag and state stores of any ComponentWith that mixes in this trait.
Usage
class MyTraitManifest :
public Manifest {
public:
enum class Flag { Active };
enum class State { Idle, Running };
};
class MyTrait : public ml::TraitWith<MyTraitManifest> {
};
Base class for all Malena manifests.
Flag
System-level boolean flags available on every ml::Core object.
- Template Parameters
-
- See also
- Trait, Customizable, Draggable, GatherFlags, GatherStates
Definition at line 60 of file Trait.h.
◆ manifest_type
◆ getState()
Return the current state value.
- Returns
- The active
StateEnum value.
◆ isState()
| std::enable_if_t<!std::is_void_v< T >, bool > ml::StateManager< extract_State< Manifest >::type >::isState |
( |
T | state | ) |
const |
|
inherited |
Return true if currently in state.
- Parameters
-
| state | The state value to compare against. |
- Returns
true if the current state equals state.
◆ onStateEnter()
| std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< Manifest >::type >::onStateEnter |
( |
std::function< void(T)> | callback | ) |
|
|
inherited |
Register a callback invoked after each state transition.
The callback receives the newly entered state. Only one enter callback is active at a time; calling this again replaces it.
- Parameters
-
| callback | Function called with the new state after each transition. |
◆ onStateExit()
| std::enable_if_t<!std::is_void_v< T > > ml::StateManager< extract_State< Manifest >::type >::onStateExit |
( |
std::function< void(T)> | callback | ) |
|
|
inherited |
Register a callback invoked before each state transition.
The callback receives the state being left. Only one exit callback is active at a time; calling this again replaces it.
- Parameters
-
| callback | Function called with the old state before each transition. |
◆ setState()
Transition to a new state.
Fires the exit callback with the current state, updates the stored state to newState, then fires the enter callback with the new state. Either callback may be unset (nullptr), in which case it is skipped.
- Parameters
-
| newState | The state to transition into. |
The documentation for this class was generated from the following file: