doIt
void doIt(FSM fsm,
Input in)
Called by the state engine to perform an action before a state transition
takes place. The FSM is passed so that the Action may set the next state
in cases when that is required. FSM and Input together allow actions to
be written that depend on the state and input, but this should generally
be avoided, as the reason for a state machine in the first place is to
cleanly separate the actions and control flow. Note that an action should
complete in a timely manner. If the state machine is used for concurrency
control with multiple threads, the action must not allow multiple threads
to run simultaneously in the state machine, as the state could be
corrupted. Any exception thrown by the Action for the transition will be
propagated to doIt.
- Parameters:
fsm - the state machine causing this action.in - the input that caused the transition.