FloatyActionRouter class final

A typed action dispatch system that replaces manual string-key matching.

Define an ActionKey as a static const on each action class, then register handlers by passing the key. The type parameter ensures the handler is invoked with the correct payload type.

Main app side:

final router = FloatyActionRouter();

router.on(
  NavigateAction.key,
  (action) => mapController.move(action.target, zoom),
);

// Dispatch an action to the overlay.
router.dispatch(PinAction(lat: 12.0, lng: -86.0));

Overlay side:

final router = FloatyActionRouter.overlay();

router.on(
  PinAction.key,
  (action) => setState(() => pin = action),
);

Actions coexist with raw shareData messages — they use a reserved _floaty_action prefix and do not interfere with existing data streams.

Offline queueing (overlay only):

When the main app is disconnected, dispatched actions are queued and automatically flushed upon reconnection. Control queue behavior with maxQueueSize and overflowStrategy.

Constructors

FloatyActionRouter({int maxQueueSize = 100, QueueOverflowStrategy overflowStrategy = QueueOverflowStrategy.dropOldest})
Creates an action router for the main app side.
FloatyActionRouter.overlay({int maxQueueSize = 100, QueueOverflowStrategy overflowStrategy = QueueOverflowStrategy.dropOldest})
Creates an action router for the overlay side.

Properties

hashCode → int
The hash code for this object.
no setterinherited
maxQueueSize → int
Maximum number of actions to queue while disconnected.
final
overflowStrategy → QueueOverflowStrategy
Strategy for handling queue overflow.
final
queueLength → int
The number of actions currently queued (waiting for reconnection).
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

dispatch(FloatyAction action) → Future<void>
Dispatches an action to the other side (main app or overlay).
dispose() → Future<void>
Releases resources and unregisters the channel handler.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
off<A extends FloatyAction>(ActionKey<A> key) → void
Removes the handler associated with key.
on<A extends FloatyAction>(ActionKey<A> key, FutureOr<void> handler(A action)) → void
Registers a handler for the action class identified by key.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited