public CacheManager(
            ILogger <CacheManager> logger,
            ICacheStoreManager storeRegistry,
            IMatchingOptions <CacheOptions> cacheOptions)
        {
            Condition.Requires(cacheOptions, nameof(cacheOptions)).IsNotNull();
            Condition.Requires(logger, nameof(logger)).IsNotNull();
            Condition.Requires(storeRegistry, nameof(storeRegistry)).IsNotNull();

            _logger        = logger;
            _cacheOptions  = cacheOptions;
            _storeRegistry = storeRegistry;
        }
Example #2
0
        public RedisCacheStore(
            ILoggerFactory loggerFactory,
            ICacheStoreSerializer objectSerializer,
            IMatchingOptions <RedisCacheOptions> options,
            string name)
        {
            Condition.Requires(loggerFactory, nameof(loggerFactory)).IsNotNull();
            Condition.Requires(options, nameof(options)).IsNotNull();
            Condition.Requires(objectSerializer, nameof(objectSerializer)).IsNotNull();

            Name              = name;
            _options          = options.GetMatchingOptions(Name);
            _objectSerializer = objectSerializer;
            _logger           = loggerFactory.CreateLogger($"{name}-{nameof(RedisCacheStore)}");
        }
Example #3
0
        public MemoryCacheStore(
            ILoggerFactory loggerFactory,
            IMatchingOptions <MemoryCacheStoreOptions> options,
            string name)
        {
            Condition.Requires(loggerFactory, nameof(loggerFactory)).IsNotNull();
            Condition.Requires(options, nameof(options)).IsNotNull();
            Condition.Requires(name, nameof(name)).IsNotNullOrEmpty();

            _options = options.GetMatchingOptions(name);
            _maxSize = _options.MaxSizeInBytes;
            Name     = name;

            _logger       = loggerFactory.CreateLogger($"{name}-{nameof(MemoryCacheStore)}");
            _cleanupTimer = new Timer(obj => CompactIfNeeded(), this, _options.PollingInterval, _options.PollingInterval);
        }