setMaxSize method

  1. @override
Future<void> setMaxSize(
  1. int? maxSize, {
  2. EvictionPolicy? evictionPolicy,
})
override

Sets the maximum cache size (applies mainly to in-memory cache).

maxSize - Maximum number of elements. If null, no limit evictionPolicy - Eviction policy when the limit is reached

Implementation

@override
Future<void> setMaxSize(
  int? maxSize, {
  EvictionPolicy? evictionPolicy,
}) async {
  await _ensureInitialized();

  _maxSize = maxSize;

  if (evictionPolicy != null) {
    _evictionPolicy = evictionPolicy;
  }

  await _saveConfig();

  // If new max size is smaller than current size, evict entries
  if (_maxSize != null && _metadataCache.length > _maxSize!) {
    final entriesToEvict = _metadataCache.length - _maxSize!;
    for (int i = 0; i < entriesToEvict; i++) {
      await _evictOneEntry();
    }
  }
}