Beispiel #1
0
 private void ResetExpirationTime <TValue>(CacheContext context, CacheItem <TValue> cacheItem)
 {
     if (expireWithin.HasValue && useSlidingExpiration)
     {
         context.SetIfNotExists(cacheItem);
         cacheItem.ExpireIn = this.expireWithin.Value;
         context.SetExpirationTime(cacheItem);
     }
 }
Beispiel #2
0
        private TValue GetOrAdd <TValue>(
            CacheContext context, string key, TValue newValue, bool doForceOverride = false)
        {
            var newItem = CreateCacheItem(key, newValue);

            if (context.SetIfNotExists(newItem))
            {
                return(newValue);
            }

            var prevValue = GetCacheItem <TValue>(context, key);

            if (!doForceOverride && prevValue != null && prevValue.Value is TValue)
            {
                return(prevValue.Value);
            }

            context.SetItem(newItem);

            return(newValue);
        }