public void Invalidate(string className, object primaryKeyValue, SoodaCacheInvalidateReason reason)
        {
            if (logger.IsTraceEnabled)
            {
                logger.Trace("Invalidating object {0}({1}). Reason: {2}", className, primaryKeyValue, reason);
            }

            _rwlock.AcquireWriterLock(-1);
            try
            {
                SoodaCacheKey cacheKey = new SoodaCacheKey(className, primaryKeyValue);
                _objectCache.Remove(cacheKey);

                LruCache cachedCollectionsDependentOnClass = (LruCache)_collectionsDependentOnClass[className];
                if (cachedCollectionsDependentOnClass != null)
                {
                    foreach (string key in cachedCollectionsDependentOnClass.Keys)
                    {
                        _collectionCache.Remove(key);
                    }
                    cachedCollectionsDependentOnClass.Clear();
                }
            }
            finally
            {
                _rwlock.ReleaseWriterLock();
            }
        }
Esempio n. 2
0
 void ISoodaCache.Invalidate(string className, object primaryKeyValue, SoodaCacheInvalidateReason reason)
 {
 }
        public void Invalidate(string className, object primaryKeyValue, SoodaCacheInvalidateReason reason)
        {
            if (logger.IsTraceEnabled)
            {
                logger.Trace("Invalidating object {0}({1}). Reason: {2}", className, primaryKeyValue, reason);
            }

            _rwlock.AcquireWriterLock(-1);
            try
            {
                SoodaCacheKey cacheKey = new SoodaCacheKey(className, primaryKeyValue);
                _objectCache.Remove(cacheKey);

                LruCache cachedCollectionsDependentOnClass = (LruCache)_collectionsDependentOnClass[className];
                if (cachedCollectionsDependentOnClass != null)
                {
                    foreach (string key in cachedCollectionsDependentOnClass.Keys)
                    {
                        _collectionCache.Remove(key);
                    }
                    cachedCollectionsDependentOnClass.Clear();
                }
            }
            finally
            {
                _rwlock.ReleaseWriterLock();
            }
        }
Esempio n. 4
0
 void ISoodaCache.Invalidate(string className, object primaryKeyValue, SoodaCacheInvalidateReason reason)
 {
 }