public PreloadedCache( IDictionary <TKey, TValue> preloadedValues, ExpirationPolicy expirationStrategy = ExpirationPolicy.None, TimeSpan?expirationDuration = null, bool fetchOnceOnly = false, NullValuePolicy nullValuePolicy = NullValuePolicy.CacheNormally, IEqualityComparer <TKey> keyComparer = null ) : base(expirationStrategy, expirationDuration, fetchOnceOnly, nullValuePolicy, keyComparer) { _preloadedValues = preloadedValues; }
public BulkFetchActionCache( Func <IDictionary <TKey, TValue> > bulkFetcher, ExpirationPolicy expirationStrategy = ExpirationPolicy.None, TimeSpan?expirationDuration = null, bool fetchOnceOnly = false, NullValuePolicy nullValuePolicy = NullValuePolicy.CacheNormally, IEqualityComparer <TKey> keyComparer = null ) : base(expirationStrategy, expirationDuration, fetchOnceOnly, nullValuePolicy, keyComparer) { _bulkFetcher = bulkFetcher; }
public ActionCache( Func <TKey, TValue> valueFetcher, Func <TValue, uint> sizeEstimator = null, CacheReapPolicy reapStrategy = CacheReapPolicy.None, ExpirationPolicy expirationStrategy = ExpirationPolicy.None, uint maxCapacity = int.MaxValue, TimeSpan?expirationDuration = null, NullValuePolicy nullValuePolicy = NullValuePolicy.CacheNormally, IEqualityComparer <TKey> keyComparer = null) : base(reapStrategy, expirationStrategy, maxCapacity, expirationDuration, nullValuePolicy, keyComparer) { _fetchFunc = valueFetcher; _estimateSizeFunc = sizeEstimator; }
protected CacheBase( CacheReapPolicy reapStrategy = CacheReapPolicy.None, ExpirationPolicy expirationStrategy = ExpirationPolicy.None, uint maxCapacity = int.MaxValue, TimeSpan?expirationDuration = null, NullValuePolicy nullValuePolicy = NullValuePolicy.CacheNormally, IEqualityComparer <TKey> keyComparer = null ) { if (!expirationDuration.HasValue) { expirationDuration = TimeSpan.MaxValue; } NullValuePolicy = nullValuePolicy; InternalStorage = keyComparer == null ? new Dictionary <TKey, CachedItem <TValue> >() : new Dictionary <TKey, CachedItem <TValue> >(keyComparer); CurrentSize = 0; ReapPolicy = reapStrategy; ExpirationPolicy = expirationStrategy; MaxCapacity = maxCapacity; ExpirationDuration = expirationDuration.Value; _lock = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion); }
protected BulkFetchCacheBase(ExpirationPolicy expirationStrategy, TimeSpan?expirationDuration = null, bool fetchOnceOnly = false, NullValuePolicy nullValuePolicy = NullValuePolicy.CacheNormally, IEqualityComparer <TKey> keyComparer = null) : base(CacheReapPolicy.None, expirationStrategy, uint.MaxValue, expirationDuration, nullValuePolicy, keyComparer) { _fetchOnceOnly = fetchOnceOnly; _fetchCount = 0; }