コード例 #1
0
        /// <summary>
        /// Method that allows the object to initialize itself. Passes the property map down
        /// the object hierarchy so that other objects may configure themselves as well..
        /// </summary>
        /// <param name="properties">configuration properties</param>
        protected override void Initialize(IDictionary cacheClasses, IDictionary properties)
        {
            if (properties == null)
            {
                throw new ArgumentNullException("properties");
            }

            try
            {
                base.Initialize(cacheClasses, properties);

                _allowExplicitGCCollection = ServiceConfiguration.EnableGCCollection;

                if (!properties.Contains("storage"))
                {
                    throw new ConfigurationException("Missing configuration option 'storage'");
                }

                if (properties.Contains("scavenging-policy"))
                {
                    IDictionary evictionProps = properties["scavenging-policy"] as IDictionary;

                    if (Convert.ToDouble(evictionProps["evict-ratio"]) > 0)
                    {
                        _evictionPolicy = EvictionPolicyFactory.CreateEvictionPolicy(evictionProps, _context.NCacheLog);
                    }
                }
                else
                {
                    _evictionPolicy = EvictionPolicyFactory.CreateDefaultEvictionPolicy();
                }

                IDictionary storageProps = properties["storage"] as IDictionary;

                _cacheStore = CacheStorageFactory.CreateStorageProvider(storageProps, this._context.SerializationContext, _evictionPolicy != null, _context.NCacheLog, null);

                _cacheStore.ISizableMessageStore = _topicManager;
                _stats.MaxCount = _cacheStore.MaxCount;
                _stats.MaxSize  = _cacheStore.MaxSize;
            }
            catch (ConfigurationException e)
            {
                if (_context != null)
                {
                    _context.NCacheLog.Error("LocalCache.Initialize()", e.ToString());
                }
                Dispose();
                throw;
            }
            catch (Exception e)
            {
                if (_context != null)
                {
                    _context.NCacheLog.Error("LocalCache.Initialize()", e.ToString());
                }
                Dispose();
                throw new ConfigurationException("Configuration Error: " + e.ToString(), e);
            }
        }
コード例 #2
0
 /// <summary>
 /// Inicializa a instancia.
 /// </summary>
 /// <param name="cacheClasses"></param>
 /// <param name="properties"></param>
 protected override void Initialize(IDictionary cacheClasses, IDictionary properties)
 {
     properties.Require("properties").NotNull();
     try
     {
         base.Initialize(cacheClasses, properties);
         if (!properties.Contains("storage"))
         {
             throw new Colosoft.Caching.Exceptions.ConfigurationException(ResourceMessageFormatter.Create(() => Properties.Resources.ConfigurationException_MissingOption, "storage").Format());
         }
         if (properties.Contains("scavenging-policy"))
         {
             IDictionary dictionary = properties["scavenging-policy"] as IDictionary;
             if ((dictionary.Contains("eviction-enabled") && Convert.ToBoolean(dictionary["eviction-enabled"])) && (Convert.ToDouble(dictionary["evict-ratio"]) > 0.0))
             {
                 _evictionPolicy = EvictionPolicyFactory.CreateEvictionPolicy(dictionary);
             }
         }
         else
         {
             _evictionPolicy = EvictionPolicyFactory.CreateDefaultEvictionPolicy();
         }
         IDictionary dictionary2 = properties["storage"] as IDictionary;
         _cacheStore = CacheStorageFactory.CreateStorageProvider(dictionary2, base._context.SerializationContext, _evictionPolicy != null, base._context.Logger);
     }
     catch (Colosoft.Caching.Exceptions.ConfigurationException exception)
     {
         if (base._context != null)
         {
             base._context.Logger.Error("LocalCache.Initialize()".GetFormatter(), exception.GetFormatter());
         }
         this.Dispose();
         throw;
     }
     catch (Exception exception2)
     {
         if (base._context != null)
         {
             base._context.Logger.Error("LocalCache.Initialize()".GetFormatter(), exception2.GetFormatter());
         }
         this.Dispose();
         throw new Colosoft.Caching.Exceptions.ConfigurationException("Configuration Error: " + exception2.ToString(), exception2);
     }
 }