setHandler<T> method

  1. @override
void setHandler<T>({
  1. T? initialData,
  2. @Deprecated('Use initialData') T? initalData,
  3. String? path,
  4. String? target,
  5. required Handler<T> handler,
})
override

Sets a handler for a specific topic. If an EventNode already exists for that topic, it updates the handler. Otherwise, it creates a new EventNode with the handler and initial data.

Implementation

@override
void setHandler<T>({
  T? initialData,
  @Deprecated('Use initialData') T? initalData,
  String? path,
  String? target,
  required Handler<T> handler,
}) {
  _checkNotDisposed();
  var data = initialData ?? initalData;
  var t = Topic.create<T>(path: path, target: target);
  var node = _eventsMap[t];
  if (node != null && node is EventNode<T>) {
    node.handler = handler;
    if (data != null) {
      node.lastData = data;
    }
  } else {
    _eventsMap[t] = EventNode<T>(handler: handler, lastData: data);
  }
}