Skip to main content

StateTransitionRule Class Template

Defines a valid state transition with optional guard. More...

Declaration

template <typename StateType> class helios::engine::state::types::StateTransitionRule<StateType> { ... }

Private Member Typedefs Index

template <typename StateType>
usingStateTransitionIdType = StateTransitionIdType< StateType >

Public Constructors Index

template <typename StateType>
constexprStateTransitionRule (const StateType from, const StateTransitionIdType transitionId, const StateType to, GuardCallback< StateType > guard=nullptr)

Constructs a transition rule. More...

Public Member Functions Index

template <typename StateType>
StateTypefrom () const noexcept

Returns the source state. More...

template <typename StateType>
StateTypeto () const noexcept

Returns the target state. More...

template <typename StateType>
StateTransitionIdTypetransitionId () const noexcept

Returns the transition identifier. More...

template <typename StateType>
auto guard () const noexcept -> GuardCallback< StateType >

Returns the guard callback. More...

Private Member Attributes Index

template <typename StateType>
StateTypefrom_

The state this rule applies to. More...

template <typename StateType>
StateTransitionIdTypetransitionId_

The transition ID that triggers this rule. More...

template <typename StateType>
StateTypeto_

The target state after transition. More...

template <typename StateType>
GuardCallback< StateType >guard_ = nullptr

Optional guard callback. More...

Description

Defines a valid state transition with optional guard.

Rules are registered with the StateManager and define which transitions are valid. Each rule specifies a source state, transition ID, target state, and an optional guard callback.

Template Parameters
StateType

The state enum type.

See Also

StateManager

See Also

GuardCallback

Definition at line 47 of file StateTransitionRule.ixx.

Private Member Typedefs

StateTransitionIdType

template <typename StateType>
using helios::engine::state::types::StateTransitionRule< StateType >::StateTransitionIdType = StateTransitionIdType<StateType>

Definition at line 49 of file StateTransitionRule.ixx.

49 using StateTransitionIdType = StateTransitionIdType<StateType>;

Public Constructors

StateTransitionRule()

template <typename StateType>
helios::engine::state::types::StateTransitionRule< StateType >::StateTransitionRule (const StateType from, const StateTransitionIdType transitionId, const StateType to, GuardCallback< StateType > guard=nullptr)
inline constexpr

Constructs a transition rule.

Parameters
from

The source state.

transitionId

The transition that triggers this rule.

to

The target state.

guard

Optional guard callback (default: nullptr).

Definition at line 81 of file StateTransitionRule.ixx.

82 const StateType from,
83 const StateTransitionIdType transitionId,
84 const StateType to,
86 ) : from_(from), transitionId_(transitionId), to_(to) {
87 if (guard != nullptr) {
88 guard_ = std::move(guard);
89 }
90 }

References helios::engine::state::types::StateTransitionRule< StateType >::from, helios::engine::state::types::StateTransitionRule< StateType >::guard, helios::engine::state::types::StateTransitionRule< StateType >::to and helios::engine::state::types::StateTransitionRule< StateType >::transitionId.

Public Member Functions

from()

template <typename StateType>
StateType helios::engine::state::types::StateTransitionRule< StateType >::from ()
inline nodiscard noexcept

Returns the source state.

Returns

The state this rule applies to.

Definition at line 97 of file StateTransitionRule.ixx.

97 [[nodiscard]] StateType from() const noexcept {
98 return from_;
99 }

Referenced by helios::engine::state::types::StateTransitionRule< StateType >::StateTransitionRule.

guard()

template <typename StateType>
GuardCallback< StateType > helios::engine::state::types::StateTransitionRule< StateType >::guard ()
inline nodiscard noexcept

Returns the guard callback.

Returns

The guard function pointer, or nullptr if no guard.

Definition at line 122 of file StateTransitionRule.ixx.

122 [[nodiscard]] GuardCallback<StateType> guard() const noexcept {
123 return guard_;
124 }

Referenced by helios::engine::state::types::StateTransitionRule< StateType >::StateTransitionRule.

to()

template <typename StateType>
StateType helios::engine::state::types::StateTransitionRule< StateType >::to ()
inline nodiscard noexcept

Returns the target state.

Returns

The state after transition.

Definition at line 106 of file StateTransitionRule.ixx.

106 [[nodiscard]] StateType to() const noexcept { return to_; }

Referenced by helios::engine::state::types::StateTransitionRule< StateType >::StateTransitionRule.

transitionId()

template <typename StateType>
StateTransitionIdType helios::engine::state::types::StateTransitionRule< StateType >::transitionId ()
inline nodiscard noexcept

Returns the transition identifier.

Returns

The transition ID that triggers this rule.

Definition at line 113 of file StateTransitionRule.ixx.

113 [[nodiscard]] StateTransitionIdType transitionId() const noexcept {
114 return transitionId_;
115 }

Referenced by helios::engine::state::types::StateTransitionRule< StateType >::StateTransitionRule.

Private Member Attributes

from_

template <typename StateType>
StateType helios::engine::state::types::StateTransitionRule< StateType >::from_

The state this rule applies to.

Definition at line 54 of file StateTransitionRule.ixx.

54 StateType from_;

guard_

template <typename StateType>
GuardCallback<StateType> helios::engine::state::types::StateTransitionRule< StateType >::guard_ = nullptr

Optional guard callback.

Definition at line 69 of file StateTransitionRule.ixx.

69 GuardCallback<StateType> guard_ = nullptr;

to_

template <typename StateType>
StateType helios::engine::state::types::StateTransitionRule< StateType >::to_

The target state after transition.

Definition at line 64 of file StateTransitionRule.ixx.

64 StateType to_;

transitionId_

template <typename StateType>
StateTransitionIdType helios::engine::state::types::StateTransitionRule< StateType >::transitionId_

The transition ID that triggers this rule.

Definition at line 59 of file StateTransitionRule.ixx.

59 StateTransitionIdType transitionId_;

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


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.