Exemple #1
0
        /// <summary>
        /// Removes a cache registration with a given name.
        /// This method is to be used during application intialization, it does not delete or replace the cache if already in use!
        /// </summary>
        /// <param name="name"></param>
        public static void RemoveCache(string name)
        {
            var cacheName = new CacheName(name);

            void Action()
            {
                // ReSharper disable once UnusedVariable
                caches.TryRemove(cacheName, out var oldValue);
            }

            SyncSet(cachesSync, Action);
        }
        /// <summary>
        /// Adds or sets a cache by name
        /// This method is to be used during application initialization, it does not delete or replace the cache if already in use!
        /// </summary>
        /// <param name="name"></param>
        /// <param name="cache"></param>
        /// <remarks>Cache name can end with wildcard '*'</remarks>
        public void SetCache(string name, ICache cache)
        {
            var cacheName = new CacheName(name);

            if (cache == null)
            {
                caches.TryRemove(cacheName, out var _);
            }
            else
            {
                caches.AddOrUpdate(cacheName, cache, (k, v) => cache);
            }
        }
Exemple #3
0
        /// <summary>
        /// Adds or sets a cache by name
        /// This method is to be used during application intialization, it does not delete or replace the cache if already in use!
        /// </summary>
        /// <param name="name"></param>
        /// <param name="cache"></param>
        /// <remarks>Cache name can end with wildcard '*'</remarks>
        public static void SetCache(string name, ICache cache)
        {
            var cacheName = new CacheName(name);

            void Action()
            {
                if (cache == null)
                {
                    // ReSharper disable once UnusedVariable
                    caches.TryRemove(cacheName, out var oldValue);
                }
                else
                {
                    caches.AddOrUpdate(cacheName, cache, (k, v) => cache);
                }
            }

            SyncSet(cachesSync, Action);
        }
Exemple #4
0
        /// <summary>Adds or sets a cache by name</summary>
        /// <remarks>Cache name can end with wildcard '*'</remarks>
        public static void SetCache(string name, ICache cache)
        {
            var cacheName = new CacheName(name);

            sync.EnterWriteLock();
            try
            {
                if (cache == null)
                {
                    ICache oldCache;
                    caches.TryRemove(cacheName, out oldCache);
                }
                else
                {
                    caches.AddOrUpdate(cacheName, cache, (n, c) => cache);
                }
            }
            finally
            {
                sync.ExitWriteLock();
            }
        }
        /// <summary>
        /// Removes a cache registration with a given name.
        /// This method is to be used during application initialization, it does not delete or replace the cache if already in use!
        /// </summary>
        /// <param name="name"></param>
        public void RemoveCache(string name)
        {
            var cacheName = new CacheName(name);

            caches.TryRemove(cacheName, out var _);
        }