process method
Add contextualTelemetryItems
to the buffer, automatically forwarding telemetry if the buffer is full.
Even if the buffer is not filled, it will eventually be forwarded once flushDelay elapses.
Implementation
@override
void process({
required List<ContextualTelemetryItem> contextualTelemetryItems,
}) {
for (final contextualTelemetryItem in contextualTelemetryItems) {
_buffer.add(contextualTelemetryItem);
if (_buffer.length > capacity) {
// Capacity reached, so attempt to flush.
flush();
} else if (flushDelay == Duration.zero) {
// Immediate flush.
flush();
} else {
// Delayed flush if not already instigated.
_flushTimer ??= Timer(
flushDelay,
flush,
);
}
}
}