using System;
using System.Collections.Generic;
namespace Umbraco.Core.Cache
{
///
/// An abstract class for implementing a basic cache provider
///
///
/// THIS MUST REMAIN INTERNAL UNTIL WE STREAMLINE HOW ALL CACHE IS HANDLED, WE NEED TO SUPPORT HTTP RUNTIME CACHE, IN MEMORY CACHE, ETC...
///
internal abstract class CacheProviderBase
{
public abstract void ClearAllCache();
public abstract void ClearCacheItem(string key);
public abstract void ClearCacheObjectTypes(string typeName);
public abstract void ClearCacheObjectTypes();
public abstract void ClearCacheObjectTypes(Func predicate);
public abstract void ClearCacheByKeySearch(string keyStartsWith);
public abstract void ClearCacheByKeyExpression(string regexString);
public abstract IEnumerable GetCacheItemsByKeySearch(string keyStartsWith);
public abstract T GetCacheItem(string cacheKey);
public abstract T GetCacheItem(string cacheKey, Func getCacheItem);
}
}