emitEvent method
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);
}
}
}