LogicBlock<TState extends StateLogic<TState>> class abstract base

A logic block. Logic blocks are machines that receive input, maintain a single state, and produce outputs. They can be used as simple input-to-state reducers or built upon to create hierarchical state machines.

Inheritance
Implemented types

Constructors

LogicBlock()
A logic block. Logic blocks are machines that receive input, maintain a single state, and produce outputs. They can be used as simple input-to-state reducers or built upon to create hierarchical state machines.

Properties

blackboard Blackboard
The blackboard data store shared across states.
final
hashCode int
The hash code for this object.
no setteroverride
isDisposed bool
Whether the logic block has been disposed.
no setter
isProcessing bool
Whether the logic block is currently processing inputs.
no setter
isStarted bool
Whether the logic block is currently started and can receive inputs.
no setter
isStopped bool
Whether the logic block is stopped (not yet started or explicitly stopped).
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
status LogicBlockStatus
The lifecycle status of this logic block.
no setter
task Future<void>
A Future that completes when all in-flight async operations started via StateLogic.async have finished.
no setter
value → TState
The current state of the logic block.
no setter
valueAsObject Object?
The current state as an untyped Object, or null if the logic block has not been started.
no setteroverride

Methods

bind() LogicBlockBinding<TState>
Creates a new LogicBlockBinding that listens to this logic block.
dispose() → void
Disposes the logic block, stopping it first if running, then cleaning up all internal resources.
forceReset(TState state) → TState
Forcibly resets the logic block to the given state, exiting and detaching the current state.
get<TData extends Object>() → TData
Gets a value of type TData from the blackboard.
getInitialState() Transition
Returns a Transition representing the initial state of the logic block.
handleError(Object e) → void
Called whenever an error is reported by a state. Override to handle errors produced during state logic execution.
handleGenericQueueItem<TInput extends Object>(GenericQueue queue, TInput input) → void
Handles a single dequeued item along with its generic type TItem.
override
input<TInput extends Object>(TInput input) → TState
Adds an input value to the logic block's internal input queue.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onStart() → void
Called after the logic block has been started for the first time. Override to perform setup after initial state entry.
onStop() → void
Called after the logic block has been stopped. Override to perform teardown after final state exit.
restoreFrom(LogicBlock<TState> logic) → void
Restores this logic block's state and blackboard from another logic block of the same type.
restoreState(Object state) → void
set<TData extends Object>(TData data) → void
Sets a value of type TData on the blackboard.
start() → TState
Starts the logic block by entering the initial state and returns it.
stop() → void
Stops the logic block, calling exit and detach callbacks on the current state before clearing the input queue.
to<TStateType extends TState>() Transition
Defines a transition to the state of type TStateType stored on the blackboard.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
override

Static Methods

createFakeBinding<TState extends StateLogic<TState>>() LogicBlockFakeBinding<StateLogic>
Creates a LogicBlockFakeBinding for testing binding callbacks without a real logic block instance.
isEquivalent(Object? a, Object? b) bool
Returns true if a and b are equivalent — that is, identical, both null, equal, or of the same runtime type.