public void Insert(string key, object value, KeyCacheDependency dependencies, DateTime absoluteExpiration) { foreach (var cacheProvider in cacheProviders) { cacheProvider.Insert(key, value, dependencies, absoluteExpiration); } }
public void Insert(string key, object value, KeyCacheDependency dependencies) { foreach (var cacheProvider in cacheProviders) { cacheProvider.Insert(key, value, dependencies); } }
/// <summary> /// A method that actually inserts the cache entry. /// </summary> private void PerformInsert(string key, object value, KeyCacheDependency dependencies, DateTime?absoluteExpiration) { InvalidateDependencies(key); var entry = new CacheEntry(value, dependencies, absoluteExpiration); Client.Insert(key, entry, absoluteExpiration); UpdateDependencies(key, dependencies); }
/// <summary> /// Updates dependencies for a specified key. Adding a dependency /// to a key will remove this key from the cache every time any of /// the dependant keys is updated or removed from cache. /// </summary> private void UpdateDependencies(string key, KeyCacheDependency dependencies) { if (dependencies == null) { return; } foreach (var dependency in dependencies) { var dependenciesKey = CreateDependenciesKey(dependency); var dependants = Client.Get(dependenciesKey) as HashSet <string>; if (dependants == null) { dependants = new HashSet <string>(); } // Add the parent key to dependencies of the dependant // key so we can efficiently find keys that need to be // invalidated when updating cache entries. dependants.Add(key); Client.Insert(dependenciesKey, dependants, null); } }
public void Insert(string key, object value, KeyCacheDependency dependencies, DateTime absoluteExpiration) { PerformInsert(key, value, dependencies, absoluteExpiration); }
public void Insert(string key, object value, KeyCacheDependency dependencies) { PerformInsert(key, value, dependencies, null); }
public CacheEntry(object value, KeyCacheDependency dependencies, DateTime?absoluteExpiration) { Value = value; Dependencies = dependencies; AbsoluteExpiration = absoluteExpiration; }