LogicStateMachine class
Provides the functionality of a Finite State Machine.
The state machine holds multiple LogicStateFactory in a list. At the creation of the machine, a LogicState is generated from the leading factory, and the process starts.
When a LogicState completes, the machine fetches the list of LogicStateTransition from the LogicStateFactory of that state and finds the factory of the next LogicState to execute from the top of the list. If the list is empty, LogicStateMachine.complete becomes true, and LogicStateMachine.current becomes LogicStateComplete.
example:
LogicStateMachine(
[
LogicStateFactory<StateA>(
() => StateA(this),
[
LogicStateTransition<StateB>(),
LogicStateTransition<StateC>(),
],
),
LogicStateFactory<StateB>(
[
LogicStateTransition<StateC>(),
],
),
LogicStateFactory<StateC>(
() => StateC(this),
[],
),
],
);
- Mixed-in types
Constructors
-
LogicStateMachine.new(List<
LogicStateFactory< factories, [Object? initialData])LogicState> > -
Creates a new LogicStateMachine.
Starts processing immediately from the top of
factories
upon creation.
Properties
- complete → bool
-
Returns true if the machine's processing is complete.
no setter
- current → LogicState
-
The current state.
no setter
- error → LogicStateError?
-
The error details when the machine terminates due to an error.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
dispose(
) → void -
Discards any resources used by the object. After this is called, the
object is not in a usable state and should be discarded (calls to
addListener will throw after the object is disposed).
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited