/// <summary> /// Recupera as configurações do DataCacheLoader. /// </summary> /// <returns></returns> private Colosoft.Caching.Configuration.Dom.CacheLoader GetDataCacheLoader() { var loader = new Colosoft.Caching.Configuration.Dom.CacheLoader(); loader.Enabled = true; loader.Retries = 0; loader.RetryInterval = 0; loader.Provider = new Colosoft.Caching.Configuration.Dom.ProviderAssembly { FullProviderName = "DataCacheLoader", AssemblyName = "Colosoft.Data.Caching", ClassName = "Colosoft.Data.Caching.DataCacheLoader" }; return(loader); }
/// <summary> /// Cria a configuração do cache. /// </summary> /// <returns></returns> private Colosoft.Caching.Configuration.Dom.CacheConfig CreateCacheConfig(Colosoft.Caching.Configuration.Dom.CacheLoader loader) { var config = new Colosoft.Caching.Configuration.Dom.CacheConfig(); config.CacheType = "local-cache"; config.InProc = false; config.ConfigID = 0; config.Name = "local-cache"; config.CacheLoader = loader; config.QueryIndices = GetQueryIndices(); config.Storage = new Colosoft.Caching.Configuration.Dom.Storage { Size = int.MaxValue, Type = "heap" }; return(config); }
/// <summary> /// Cria o cache com base no loader informado. /// </summary> /// <param name="loader"></param> private void CreateCache(Colosoft.Caching.Configuration.Dom.CacheLoader loader) { var config = CreateCacheConfig(loader); var configProperties = Colosoft.Caching.Configuration.Dom.ConfigConverter.ToHashtable(config); var cacheProperties = (System.Collections.Hashtable)configProperties["cache"]; var cacheLoaderProperties = (System.Collections.Hashtable)cacheProperties["cache-loader"]; var loaderParameters = new System.Collections.Hashtable(); loaderParameters.Add("sourceContext", _sourceContext); loaderParameters.Add("manager", this); loaderParameters.Add("downloader", _dataEntryDownloader); loaderParameters.Add("repository", _dataEntriesRepository); loaderParameters.Add("logger", _logger); loaderParameters.Add("typeSchema", _typeSchema); loaderParameters.Add("cacheLoaderObserver", _cacheLoaderObserver); cacheLoaderProperties["parameters"] = loaderParameters; cacheProperties.Add("observer", this); _cache = Colosoft.Caching.CacheFactory.CreateFromProperties(configProperties, config, true); _cache.Loaded += CacheLoaded; }