GenericCache<T> constructor
GenericCache<T> (
- Store<
CacheInfo, CacheEntry> storage, { - CacheManager? manager,
- String? name,
- ExpiryPolicy? expiryPolicy,
- KeySampler? sampler,
- EvictionPolicy? evictionPolicy,
- int? maxEntries,
- CacheLoader<
T> ? cacheLoader, - Clock? clock,
- EventListenerMode? eventListenerMode,
- bool? statsEnabled,
- CacheStats? stats,
Builds a GenericCache out of a mandatory Store and a set of optional configurations
- storage: The Store
- manager: An optional CacheManager
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 absence or expirationclock
: The source of time to be used on this, defaults to the system clock if not providedeventListenerMode
: The event listener mode of this cachestatsEnabled
: If statistics should be collected, defaults to falsestats
: The statistics instance, defaults toDefaultCacheStats
Returns a GenericCache
Implementation
GenericCache(this.storage,
{this.manager,
String? name,
ExpiryPolicy? expiryPolicy,
KeySampler? sampler,
EvictionPolicy? evictionPolicy,
int? maxEntries,
CacheLoader<T>? cacheLoader,
Clock? clock,
EventListenerMode? eventListenerMode,
bool? statsEnabled,
CacheStats? stats})
: 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<T?>.value()),
clock = clock ?? Clock(),
eventPublishingMode = eventListenerMode ?? EventListenerMode.disabled,
streamController = StreamController.broadcast(
sync: eventListenerMode == EventListenerMode.synchronous),
statsEnabled = statsEnabled ?? false,
stats = stats ?? DefaultCacheStats();