Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MammothCache"/> class.
        /// </summary>
        /// <param name="firstLevelCache">First level of cache</param>
        /// <param name="secondLevelCache">Second level of cache</param>
        /// <param name="nonSerializableCache">Cache for objects that cannot be serialized</param>
        /// <param name="serializationProvider">Serialization provider</param>
        public MammothCache(IFirstLevelCache firstLevelCache,
                            ISecondLevelCache secondLevelCache,
                            INonSerializableCache nonSerializableCache,
                            IMammothCacheSerializationProvider serializationProvider)
        {
            NonSerializableCache  = nonSerializableCache;
            FirstLevelCache       = firstLevelCache;
            SecondLevelCache      = secondLevelCache;
            SerializationProvider = serializationProvider;

            SubscribeToEvents();
        }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SquirrelCache"/> class.
        /// </summary>
        /// <param name="config">Configuration of the <see cref="SquirrelCache"/></param>
        /// <param name="cloningProvider">Cloning provider</param>
        /// <param name="serializationProvider">Serialization provider</param>
        public SquirrelCache(IFirstLevelCacheConfig config, IFirstLevelCacheCloningProvider cloningProvider, IMammothCacheSerializationProvider serializationProvider)
        {
            _config                = config;
            _cloningProvider       = cloningProvider;
            _serializationProvider = serializationProvider;

            if (_config.AbsoluteExpiration.TotalSeconds <= 0)
            {
                throw new ArgumentException("AbsoluteExpiration must be greater than 0");
            }

            if (_config.MaximumMemorySize <= 0)
            {
                throw new ArgumentException("MaximumMemorySize must be greater than 0");
            }

            if (_config.TimerInterval.TotalMilliseconds <= 0)
            {
                throw new ArgumentException("TimerInterval must be greater than 0");
            }

            _cache = new InMemoryCache(_config.TimerInterval, _config.MaximumMemorySize);
        }