emitEvent method

  1. @protected
void emitEvent(
  1. NutrientEvent event
)

Emits a cross-platform event to all events subscribers.

Call this from platform adapter subclasses to push events into the shared stream. Events emitted before the first listener attaches are buffered and flushed once a listener subscribes (see _bufferedEvents). Silently no-ops if the controller has been disposed.

Implementation

@protected
void emitEvent(NutrientEvent event) {
  if (_eventController.isClosed) return;
  if (_hasHadListener) {
    _eventController.add(event);
  } else {
    _bufferedEvents.add(event);
    if (_bufferedEvents.length > _maxBufferedEvents) {
      _bufferedEvents.removeAt(0);
    }
  }
}