using System;
using System.Collections.Generic;
using JetBrains.Annotations;
namespace Abp.Runtime.Caching
{
///
/// An upper level container for objects.
/// A cache manager should work as Singleton and track and manage objects.
///
public interface ICacheManager : IDisposable
{
///
/// Gets all caches.
///
/// List of caches
IReadOnlyList GetAllCaches();
///
/// Gets a instance.
/// It may create the cache if it does not already exists.
///
///
/// Unique and case sensitive name of the cache.
///
/// The cache reference
[NotNull] ICache GetCache([NotNull] string name);
}
}