using System; using System.Collections.Generic; using System.Linq; using System.Web.Caching; namespace Umbraco.Core.Cache { /// /// Represents a cache provider that does not cache anything. /// public class NullCacheProvider : IRuntimeCacheProvider { private NullCacheProvider() { } public static NullCacheProvider Instance { get; } = new NullCacheProvider(); public virtual void ClearAllCache() { } public virtual void ClearCacheItem(string key) { } public virtual void ClearCacheObjectTypes(string typeName) { } public virtual void ClearCacheObjectTypes() { } public virtual void ClearCacheObjectTypes(Func predicate) { } public virtual void ClearCacheByKeySearch(string keyStartsWith) { } public virtual void ClearCacheByKeyExpression(string regexString) { } public virtual IEnumerable GetCacheItemsByKeySearch(string keyStartsWith) { return Enumerable.Empty(); } public IEnumerable GetCacheItemsByKeyExpression(string regexString) { return Enumerable.Empty(); } public virtual object GetCacheItem(string cacheKey) { return default(object); } public virtual object GetCacheItem(string cacheKey, Func getCacheItem) { return getCacheItem(); } public object GetCacheItem(string cacheKey, Func getCacheItem, TimeSpan? timeout, bool isSliding = false, CacheItemPriority priority = CacheItemPriority.Normal, CacheItemRemovedCallback removedCallback = null, string[] dependentFiles = null) { return getCacheItem(); } public void InsertCacheItem(string cacheKey, Func getCacheItem, TimeSpan? timeout = null, bool isSliding = false, CacheItemPriority priority = CacheItemPriority.Normal, CacheItemRemovedCallback removedCallback = null, string[] dependentFiles = null) { } } }