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
-
- Object
- EventBusImpl
- EventBusIsolate
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:
waitInitwaits 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
sendshould 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