Exemplo n.º 1
0
        public bool IsExpired(CachedItem <TValue> item)
        {
            if (item.Invalidated)
            {
                return(true);
            }

            DateTime from;

            switch (ExpirationPolicy)
            {
            case ExpirationPolicy.SinceFetchedTime:
                from = item.FetchedOn;
                break;

            case ExpirationPolicy.SinceLastAccessedTime:
                from = item.LastAccessedOn;
                break;

            default:
                from = DateTime.Now;
                break;
            }
            return(ExpirationPolicy != ExpirationPolicy.None && DateTime.Now.Subtract(from) > ExpirationDuration);
        }
Exemplo n.º 2
0
 protected void NotifyItemRemoved(TKey key, CachedItem <TValue> val)
 {
     OnItemRemoved(key, val);
     if (ItemRemoved != null)
     {
         ItemRemoved(key, val);
     }
 }
Exemplo n.º 3
0
        private CachedItem <TValue> AddItemInternal(TKey key, TValue val)
        {
            var item = new CachedItem <TValue> {
                AccessedCount  = 0,
                LastAccessedOn = DateTime.Now,
                FetchedOn      = DateTime.Now,
                Value          = val,
                Size           = EstimateSize(val)
            };

            if (MaxCapacity - CurrentSize < item.Size)
            {
                MakeSpace(item.Size);
            }
            InternalStorage[key] = item;
            CurrentSize         += item.Size;
            return(item);
        }
Exemplo n.º 4
0
 protected virtual void OnItemRemoved(TKey key, CachedItem <TValue> val)
 {
 }