drain method

List<QueuedMessage> drain()

Removes and returns all non-expired messages. Expired messages are discarded.

Implementation

List<QueuedMessage> drain() {
  final result = <QueuedMessage>[];
  while (_queue.isNotEmpty) {
    final item = _queue.removeFirst();
    if (!item.isExpired) result.add(item);
  }
  return result;
}