using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace Umbraco.Core.Cache { /// /// Implements and do not cache. /// public class NoAppCache : IAppPolicyCache, IRequestCache { protected NoAppCache() { } /// /// Gets the singleton instance. /// public static NoAppCache Instance { get; } = new NoAppCache(); /// public bool IsAvailable => false; /// public virtual object Get(string cacheKey) { return null; } /// public virtual object Get(string cacheKey, Func factory) { return factory(); } public bool Set(string key, object value) => false; public bool Remove(string key) => false; /// public virtual IEnumerable SearchByKey(string keyStartsWith) { return Enumerable.Empty(); } /// public IEnumerable SearchByRegex(string regex) { return Enumerable.Empty(); } /// public object Get(string key, Func factory, TimeSpan? timeout, bool isSliding = false, string[] dependentFiles = null) { return factory(); } /// public void Insert(string key, Func factory, TimeSpan? timeout = null, bool isSliding = false, string[] dependentFiles = null) { } /// public virtual void Clear() { } /// public virtual void Clear(string key) { } /// public virtual void ClearOfType(Type type) { } /// public virtual void ClearOfType() { } /// public virtual void ClearOfType(Func predicate) { } /// public virtual void ClearByKey(string keyStartsWith) { } /// public virtual void ClearByRegex(string regex) { } public IEnumerator> GetEnumerator() => new Dictionary().GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } }