dequeue method
Remove and return the next message from the queue
Implementation
QueuedMessage? dequeue() {
_cleanupExpiredMessages();
if (config.priorityEnabled) {
// Check priority queues in order (critical first)
for (final queue in _priorityQueues) {
if (queue.isNotEmpty) {
final message = queue.removeFirst();
_totalQueued--;
logger.fine('Dequeued ${message.message.command} message (priority: ${message.priority}, remaining: $_totalQueued)');
return message;
}
}
} else {
// Just use normal priority queue
final normalQueue = _priorityQueues[MessagePriority.normal.level];
if (normalQueue.isNotEmpty) {
final message = normalQueue.removeFirst();
_totalQueued--;
logger.fine('Dequeued ${message.message.command} message (remaining: $_totalQueued)');
return message;
}
}
return null;
}