using System; using System.Collections.Generic; namespace Umbraco.Core.Cache { /// /// An abstract class for implementing a basic cache provider /// public interface ICacheProvider { /// /// Removes all items from the cache. /// void ClearAllCache(); /// /// Removes an item from the cache, identified by its key. /// /// The key of the item. void ClearCacheItem(string key); /// /// Removes items from the cache, of a specified type. /// /// The name of the type to remove. /// /// If the type is an interface, then all items of a type implementing that interface are /// removed. Otherwise, only items of that exact type are removed (items of type inheriting from /// the specified type are not removed). /// Performs a case-sensitive search. /// void ClearCacheObjectTypes(string typeName); /// /// Removes items from the cache, of a specified type. /// /// The type of the items to remove. /// If the type is an interface, then all items of a type implementing that interface are /// removed. Otherwise, only items of that exact type are removed (items of type inheriting from /// the specified type are not removed). void ClearCacheObjectTypes(); /// /// Removes items from the cache, of a specified type, satisfying a predicate. /// /// The type of the items to remove. /// The predicate to satisfy. /// If the type is an interface, then all items of a type implementing that interface are /// removed. Otherwise, only items of that exact type are removed (items of type inheriting from /// the specified type are not removed). void ClearCacheObjectTypes(Func predicate); void ClearCacheByKeySearch(string keyStartsWith); void ClearCacheByKeyExpression(string regexString); IEnumerable GetCacheItemsByKeySearch(string keyStartsWith); IEnumerable GetCacheItemsByKeyExpression(string regexString); /// /// Returns an item with a given key /// /// /// object GetCacheItem(string cacheKey); object GetCacheItem(string cacheKey, Func getCacheItem); } }