pruneExpired method

  1. @override
Future<int> pruneExpired(
  1. String namespace,
  2. DateTime clock
)
override

Removes expired entries and returns the number of records purged.

Implementation

@override
Future<int> pruneExpired(String namespace, DateTime clock) async {
  final records = _entries[namespace];
  if (records == null || records.isEmpty) return 0;
  final toRemove = <String>[];
  records.forEach((key, value) {
    if (value.isExpired(clock)) {
      toRemove.add(key);
    }
  });
  toRemove.forEach(records.remove);
  if (records.isEmpty) {
    _entries.remove(namespace);
  }
  return toRemove.length;
}