예제 #1
0
        public bool AddCache(object key, object value)
        {
            if ((key == null) || (value == null))
            {
                return(false);
            }
            CachedObjectInfo cacheInfo = GetCacheInfo(key);

            if (cacheInfo == null)
            {
                cacheInfo = AddCacheInfo(key);
                if (cacheInfo == null)
                {
                    return(false);
                }
            }
            if (cacheInfo.CachedObj(value.GetHashCode()))
            {
                cacheInfo.AddToCache(value);
                return(true);
            }
            if (GetCacheCount() >= mCacheBlockMaxCount)
            {
                TryFixPool();
            }
            if (GetCacheCount() > mCacheBlockMaxCount)
            {
                return(false);
            }
            cacheInfo.AddToCache(value);
            return(true);
        }