- Notifications
You must be signed in to change notification settings - Fork25
Transition Actions
A transition action is a functor that will be called after the transition's source state exited and before the target state entered. It is passed the event, immediately enclosing state machine and source and target states. The operator can be const-qualified, it doesn't make any difference as the transition action objects are temporaries instantiated at the point of call.
Generic transition action (catch all)
structtransition_action {template<typename Event,typename FSM,typename SourceState,typename TargetState >voidoperator()(Event&&, FSM&, SourceState&, TargetState&) {using ::psst::util::demangle; ::std::cerr <<"State machine" << demangle<FSM>() <<" transits from" << demangle<SourceState>() <<" to" << demangle<TargetState>() <<" on event" << demangle<Event>() <<"\n"; }};
The event will be passed by rvalue reference ifprocess_event was called with rvalue reference or the event was previously queued or deferred. TheFSM parameter will be the immediately enclosing state machine (definition wrapped in::afsm::state_machine or::afsm::inner_state_machine. The states parameters are state or state machine definitions wrapped in::afsm::state or::afsm::inner_state_machine respectively.
Source and target state parameters are planned to be optional
- Home
- Tutorial
- Concepts
- State Hierarchy
- Entry/Exit Actions
- Transition Actions
- Transition Guards
- Internal Transitions
- Default Transitions
- Event Deferring
- History
- Orthogonal Regions
- Event Priority
- Common Base
- Thread Safety
- Exception Safety Guarantees
- Under the Hood
- Event Processing
- Performance