Пример #1
0
 /// <summary>
 /// Constructs a new cache instance.
 /// </summary>
 /// <param name="initialValue">The value to initialize the cache with.</param>
 /// <param name="cacheValidator">A CacheValidator delegate that will tell if cached value is still actual.</param>
 /// <param name="lockTimeout">Lock timeout in milliseconds.</param>
 /// <param name="invalidateOnSoftRecycle">Whether to invalidate this cache on Current.SoftRecycle.</param>
 public Cache(T initialValue, CacheValidator <T> cacheValidator, int lockTimeout, bool invalidateOnSoftRecycle)
 {
     this.setValue(initialValue);
     this.lockTimeout = lockTimeout;
     if (invalidateOnSoftRecycle)
     {
         Current.SoftRecycle += WhenSoftRecycling;
     }
 }
Пример #2
0
 /// <summary>
 /// Constructs a new cache instance.
 /// </summary>
 /// <param name="valueProvider">A ValueProvider delegate that will provide updated values to the cache.</param>
 /// <param name="cacheValidator">A CacheValidator delegate that will tell if cached value is still actual.</param>
 /// <param name="lockTimeout"></param>
 public Cache(ValueProvider <T> valueProvider, CacheValidator <T> cacheValidator, int lockTimeout)
 {
     if (valueProvider == null)
     {
         throw new ArgumentNullException("valueProvider");
     }
     this.ValueProvider  = valueProvider;
     this.CacheValidator = cacheValidator;
     this.lockTimeout    = lockTimeout;
 }
Пример #3
0
 /// <summary>
 /// Constructs a new cache instance.
 /// </summary>
 /// <param name="valueProvider">A ValueProvider delegate that will provide updated values to the cache.</param>
 /// <param name="maxAge"></param>
 /// <param name="lockTimeout"></param>
 public Cache(ValueProvider <T> valueProvider, TimeSpan maxAge, int lockTimeout)
 {
     if (valueProvider == null)
     {
         throw new ArgumentNullException("valueProvider");
     }
     this.ValueProvider  = valueProvider;
     this.maxAge         = maxAge;
     this.CacheValidator = this.DefaultAgeValidator;
     this.lockTimeout    = lockTimeout;
 }
Пример #4
0
 /// <summary>
 /// Constructs a new cache instance.
 /// </summary>
 /// <param name="valueProvider">A ValueProvider delegate that will provide updated values to the cache.</param>
 /// <param name="cacheValidator">A CacheValidator delegate that will tell if cached value is still actual.</param>
 /// <param name="lockTimeout">Lock timeout in milliseconds.</param>
 /// <param name="invalidateOnSoftRecycle">Whether to invalidate this cache on Current.SoftRecycle.</param>
 public Cache(ValueProvider <T> valueProvider, CacheValidator <T> cacheValidator, int lockTimeout, bool invalidateOnSoftRecycle)
 {
     if (valueProvider == null)
     {
         throw new ArgumentNullException("valueProvider");
     }
     this.ValueProvider  = valueProvider;
     this.CacheValidator = cacheValidator;
     this.lockTimeout    = lockTimeout;
     if (invalidateOnSoftRecycle)
     {
         Current.SoftRecycle += WhenSoftRecycling;
     }
 }
 /// <summary>
 /// Creates an <see cref="EntityTagHeaderValue"/> from the specified <paramref name="validator"/>.
 /// </summary>
 /// <param name="validator">The validator to extend.</param>
 /// <returns>An <see cref="EntityTagHeaderValue"/> that is initiated with a hexadecimal representation of <see cref="ChecksumBuilder.Checksum"/> and a value that indicates if the tag is weak.</returns>
 public static EntityTagHeaderValue ToEntityTag(this CacheValidator validator)
 {
     Validator.ThrowIfNull(validator, nameof(validator));
     return(validator.ToEntityTag(validator.Strength != ChecksumStrength.Strong));
 }
Пример #6
0
 /// <summary>
 /// Constructs a new cache instance.
 /// </summary>
 /// <param name="initialValue">The value to initialize the cache with.</param>
 /// <param name="cacheValidator">A CacheValidator delegate that will tell if cached value is still actual.</param>
 /// <param name="lockTimeout"></param>
 public Cache(T initialValue, CacheValidator <T> cacheValidator, int lockTimeout)
 {
     this.setValue(initialValue);
     this.lockTimeout = lockTimeout;
 }