EventBusIsolate class

Atention The result of calling the event can be received later than the events called in the event handler on the isolate side

EventBusIsolate it consists of two Event bus, one on the side of the main isolate and the other in the working isolate. They exchange EventDTO and the results of the handlers' work among themselves.

waitInit completes once the worker has run onInit; before that send/listen/subscribe throw StateError. Replies are correlated by request id, so concurrent requests of the same type never get swapped.

Inheritance

Constructors

EventBusIsolate({required FutureOr<void> onInit(EventBus isolateBu, Object? initialData), Object? initialData})

Properties

allEventStream → Stream<(EventDTO, bool)>
Stream for all sent events (event DTO, and whether it had a listener or not)
no setterinherited
defaultTopicPathSeparator ↔ String
getter/setter pairinherited
handlers → EventBusHandlers
Handler management without casting bus as EventBusHandlers.
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
isDisposed → bool
true once dispose has been called
no setterinherited
isInit → bool
true after a successful worker initialization
no setter
isModelBus → bool
no setterinherited
onInit → FutureOr<void> Function(EventBus isolateBu, Object? initialData)
Worker init function. May be async: waitInit waits for it to finish. Must be top-level/static - closures cannot be sent to another isolate.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
waitInit → Future<bool>
Completes with true once the worker has run onInit, or with an error when the isolate could not be spawned or onInit threw.
no setter

Methods

addAllHandlerFromOtherBus(EventBus fromBus) → void
Adds all handlers from another EventBus to this one.
inherited
createNode<T>({required Topic topic, T? currentData}) → EventNode<T>
Creates the node for a topic.
inherited
currentData<T>({List<String>? paths, String? separator}) → T?
Gets the last data sent to a specific topic. Returns null if no data has been sent to that topic.
inherited
dispose() → Future<void>
Closes the all-events stream and every node of the bus. Safe to call more than once; after dispose the bus throws StateError on use.
override
fire<T>(T data, {List<String>? paths, String? separator, Map<String, String>? arguments}) → bool
Publishes an event to local listeners without waiting for a handler.
override
handleIncomingRequest(EventDTO dto) → Future
Dispatches a request received from another process, for example a transport.
inherited
handlerTopicFor(Topic topic) → Topic?
The registered topic of the handler that would answer topic, or null when no handler accepts it.
inherited
haveHandler<T>({List<String>? paths, String? separator}) → bool
Returns true if the bus contains a handler for the specified topic
inherited
haveListener<T>({List<String>? paths, String? separator}) → bool
Checks if the bus contains a listener for the specified topic.
inherited
listen<T>({List<String>? paths, String? separator}) → Stream<T>
Listens to events on a specific topic. Creates a new EventNode if one doesn't exist for that topic. Returns a Stream of the data type T.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
ping({Duration timeout = const Duration(seconds: 2)}) → Future<bool>
Liveness check: true if the worker replied within timeout. Readiness (a finished onInit) is reported by waitInit and isInit.
removeAllHandlerPresentInOtherBus(EventBus otherBus) → void
Removes all handlers that are present in another EventBus from this one.
inherited
removeHandler<T>({List<String>? paths, String? separator}) → void
Removes a handler from a specific topic.
inherited
removeNode(Topic topic, EventNode node) → bool
This method is called every time a listener closes the stream. The node is kept when it has listeners, a request handler, a pin from a transport, or when this is a model bus.
inherited
request<T>(T data, {List<String>? paths, String? separator, Map<String, String>? arguments, Duration? timeout}) → Future
Sends a request and waits for the result of a handler.
override
setHandler<T>({T? initialData, List<String>? paths, String? separator, required Handler<T> handler}) → void
Sets a handler for a specific topic. If initialData is provided, it will be used as the initial data for the topic.
inherited
shouldCreateNodeOnSend(Topic topic) → bool
Whether send should create a node when the topic has none.
inherited
subscribe<T>({List<String>? paths, String? separator, void onData(T e)?, Function? onError, void onDone()?, bool? cancelOnError}) → StreamSubscription<T>
Subscribe to events on a specific topic.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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