/// <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; } }
/// <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; }
/// <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; }
/// <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)); }
/// <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; }