Example #1
0
        public UpgradedCache(bool cleanRareItems = true, IComparer <T> comparer = null, IEqualityComparer <T> eqcomparer = null, Action <Action> queueRebalance = null)
        {
            _state   = new CacheState(this);
            comparer = comparer ?? Comparer <T> .Default;
            var eqComparer = eqcomparer ?? EqualityComparer <T> .Default;

            _secondLevelCache = new SecondLevelCache <T, TElementType>(comparer, k => k.GetFrequency(), queueRebalance ?? QueueRebalance);
            _firstLevelCache  = new WeakReference(_lowItemsCountFixing = new ConcurrentDictionary <T, TElementType>(eqComparer));
        }
Example #2
0
 public CacheState(SecondLevelCache <TKey, TValue> cache)
 {
     _cache = cache;
 }