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