Creates the FSM
The main concurrent FSMs
The logger to use for logging FSM messages
Optional
dataHandler: TThe data handler the FSM will use
Private
Readonly
_conccurFSMsThe main fsms
Protected
_currentProtected
_dataProtected
_startedGoes with 'startingState'. It permits to know whether the FSM has started, ie whether the 'starting state' has been reached.
Protected
Readonly
_statesThe states that compose the finite state machine.
Protected
Readonly
currentThe current sub FSM in which this FSM is while running.
Protected
currentThe current timeout in progress.
Protected
Readonly
eventsThe events still in process. For example when the user press key ctrl and scroll one time using the wheel of the mouse, the interaction scrolling is finished but the event keyPressed 'ctrl' is still in process. At the end of the interaction, these events are re-introduced into the state machine of the interaction for processing.
Protected
Readonly
handlersThe handlers to be notified on FSM state changes.
Readonly
initThe initial state of the FSM
Defines whether the FSM is an inner FSM (ie, whether it is included into another FSM as a sub-FSM transition).
Protected
Readonly
loggerBy default an FSM triggers its 'start' event when it leaves its initial state. In some cases, this is not the case. For example, a double-click interaction is an FSM that must trigger its start event when the FSM reaches... its terminal state. Similarly, a DnD must trigger its start event on the first move, not on the first press. The goal of this attribute is to identify the state of the FSM that must trigger the start event. By default, this attribute is set with the initial state of the FSM.
The current state of the FSM.
The current state of the FSM.
An observable value for observing the current state of FSM during its execution.
Logs (or not) information about the execution of the FSM.
True: The FSM started.
Visiting the FSM.
The visitor.
Adds a cancelling state to the state machine.
The name of the state to add.
The created state.
Adds an FSM handler.
The handler to add.
Adds a terminal state to the state machine.
The name of the state to add.
States whether the new state is the one that starts the FSM.
The created state.
Protected
checkProtected
notifyProtected
notifyProtected
notifyProtected
notifyProtected
processRemoves the given FSM handler from this FSM.
The handler to remove.
Generated using TypeDoc
A concurrent FSM: an FSM that contains multiple FSMs where only one of them can run at the same time. This is thus a XOR concurrent FSM. If one FSM has started, the other ones cannot start.