onProcessed method

  1. @override
void onProcessed(
  1. Msg msg,
  2. Duration elapsed
)
override

Called after a message has been processed.

Implementation

@override
void onProcessed(Msg msg, Duration elapsed) {
  // End the task paired with this particular queued message.
  if (enableTimeline) {
    final tasks = _messageTimelineTasks[msg];
    if (tasks != null && tasks.isNotEmpty) {
      tasks.removeAt(0).finish();
      if (tasks.isEmpty) _messageTimelineTasks.remove(msg);
    }
  }

  // Record in the message log ring buffer.
  final entry = DevToolsMessageEntry(
    timestamp: DateTime.now(),
    messageType: msg.runtimeType.toString(),
    summary: summarizeMessage(msg),
    processingTime: elapsed,
  );
  if (_diagnostics == null) {
    _messageLog.add(entry);
    if (_messageLog.length > maxLogEntries) {
      _messageLog.removeAt(0);
    }
  }

  // Emit live event.
  if (enablePostEvent) {
    dev.postEvent('artisanal:message', <String, Object?>{...entry.toJson()});
  }

  if (_queuedMessageCount > 0) _queuedMessageCount--;
  inner?.onProcessed(msg, elapsed);
}