DefaultCache constructor
DefaultCache(
- CacheStore storage, {
- String? name,
- ExpiryPolicy? expiryPolicy,
- KeySampler? sampler,
- EvictionPolicy? evictionPolicy,
- int? maxEntries,
- CacheLoader? cacheLoader,
- Clock? clock,
- EventListenerMode? eventListenerMode,
Builds a DefaultCache out of a mandatory CacheStore and a set of optional configurations
- storage: The CacheStore
name
: The name of the cacheexpiryPolicy
: The expiry policy to use, defaults to EternalExpiryPolicy if not providedsampler
: The sampler to use upon eviction of a cache element, defaults to FullSampler if not providedevictionPolicy
: The eviction policy to use, defaults to LfuEvictionPolicy if not providedmaxEntries
: The max number of entries this cache can hold if provided. To trigger the eviction policy this value should be providedcacheLoader
: The CacheLoader, that should be used to fetch a new value upon expirationclock
: The source of time to be used on this, defaults to the system clock if not providedeventListenerMode
: The event listener mode of this cache
Returns a DefaultCache
Implementation
DefaultCache(this.storage,
{String? name,
ExpiryPolicy? expiryPolicy,
KeySampler? sampler,
EvictionPolicy? evictionPolicy,
int? maxEntries,
CacheLoader? cacheLoader,
Clock? clock,
EventListenerMode? eventListenerMode})
: name = name ?? Uuid().v1(),
expiryPolicy = expiryPolicy ?? const EternalExpiryPolicy(),
sampler = sampler ?? const FullSampler(),
evictionPolicy = evictionPolicy ?? const LfuEvictionPolicy(),
assert(maxEntries == null || maxEntries >= 0),
maxEntries = maxEntries ?? 0,
cacheLoader = cacheLoader ?? ((key) => Future.value()),
clock = clock ?? Clock(),
eventPublishingMode = eventListenerMode ?? EventListenerMode.disabled,
streamController = StreamController.broadcast(
sync: eventListenerMode == EventListenerMode.synchronous);