send<T> method
Sends an event to the bus. If a handler exists for the topic, it will be called. Returns a Future that completes with the result if EventDTO.completer was called by the handler. If no handler exists, returns null.
Implementation
@override
Future? send<T>(T data, {String? path, String? fragment, String? target, Map<String, String>? arguments}) async {
if (_toEBSender != null) {
var c = Completer();
var dto =
EventDTO<T>(data, path: path, fragment: fragment, arguments: arguments, target: target, completer: null);
///We send EventDTO to Isolate and wait return
if (_request.containsKey(dto.hashCode)) {
_request[dto.hashCode]!.add(c);
} else {
_request[dto.hashCode] = [];
_request[dto.hashCode]!.add(c);
}
_toEBSender!.send(dto);
return c.future;
// }
// var node = _map[dto.topic];
// if (node != null && node is EventNode<T>) {
// node._streamController.add(dto);
// return dto.completer?.future;
// }
// _allEventStream.add(dto);
// return null;
// return super.send(data, path, fragment, target, arguments);
}
}