Aggregates state machines for multiple enum types into one class. More...
#include <MultiCustomStateManager.h>
Public Member Functions | |
| StateEnums | getState () const |
| Return the current state value. | |
| bool | isState (StateEnums state) const |
Return true if the current state equals state. | |
| void | onStateEnter (std::function< void(StateEnums)> cb) |
| Register a callback invoked when any state is entered. | |
| void | onStateExit (std::function< void(StateEnums)> cb) |
| Register a callback invoked when any state is exited. | |
| void | setState (StateEnums newState) |
| Transition to a new state. | |
Aggregates state machines for multiple enum types into one class.
MultiCustomStateManager<StateEnums...> inherits one SingleStateManager per enum in the pack and lifts all their methods into a single overload set. This allows a component to call a single setState, getState, or isState overloaded on enum type, without casting to a specific base.
It is instantiated by GatherStates, which collects all State enums from a component's manifest and from every trait mixed in via ComponentWith.
| StateEnums | Zero or more enum class types, one per state machine. The empty specialization is used when no custom states are declared. |
Definition at line 131 of file MultiCustomStateManager.h.
|
inlineinherited |
Return the current state value.
Definition at line 57 of file MultiCustomStateManager.h.
|
inlineinherited |
Return true if the current state equals state.
| state | State value to compare against. |
true if currently in state. Definition at line 64 of file MultiCustomStateManager.h.
|
inlineinherited |
Register a callback invoked when any state is entered.
The callback receives the newly entered state as its argument. Only one enter callback is active at a time; calling this again replaces the previous one.
| cb | Callback invoked with the new state after each transition. |
Definition at line 75 of file MultiCustomStateManager.h.
|
inlineinherited |
Register a callback invoked when any state is exited.
The callback receives the state being left as its argument. Only one exit callback is active at a time; calling this again replaces the previous one.
| cb | Callback invoked with the old state before each transition. |
Definition at line 86 of file MultiCustomStateManager.h.
|
inlineinherited |
Transition to a new state.
If an exit callback is registered, it is called with the current state before the transition. If an enter callback is registered, it is called with the new state after the transition.
| newState | The state to transition into. |
Definition at line 46 of file MultiCustomStateManager.h.