Esempio n. 1
0
        protected static async Task AssertComplexTypeCachingAsync(ICacheLayer cacheLayer)
        {
            var complexTypeOneEntry = new CacheEntry <ComplexTypeCaching_TypeOne>(new ComplexTypeCaching_TypeOne
            {
                ExampleString = "Hello World",
                ExampleNumber = 99,
                ListOfNumbers = new List <int>()
                {
                    1, 2, 4, 8
                }
            }, TimeSpan.FromDays(1));
            await cacheLayer.SetAsync("ComplexTypeOne", complexTypeOneEntry);

            var complexTypeOneEntryGet = await cacheLayer.GetAsync <ComplexTypeCaching_TypeOne>("ComplexTypeOne");

            Assert.AreEqual(complexTypeOneEntry, complexTypeOneEntryGet, "Set value in cache doesn't match retrieved value");

            var complexTypeTwoEntry = new CacheEntry <ComplexTypeCaching_TypeTwo>(new ComplexTypeCaching_TypeTwo
            {
                ExampleString       = "Hello World",
                ArrayOfObjects      = new[] { complexTypeOneEntry.Value },
                DictionaryOfNumbers = new Dictionary <string, int>()
                {
                    { "A", 1 }, { "Z", 26 }
                }
            }, TimeSpan.FromDays(1));
            await cacheLayer.SetAsync("ComplexTypeTwo", complexTypeTwoEntry);

            var complexTypeTwoEntryGet = await cacheLayer.GetAsync <ComplexTypeCaching_TypeTwo>("ComplexTypeTwo");

            Assert.AreEqual(complexTypeTwoEntry, complexTypeTwoEntryGet, "Set value in cache doesn't match retrieved value");
        }
Esempio n. 2
0
 public EventLogFilterRepo(ISettingsProvider settingsProvider, IEventRecordTimeSpanSearcher eventRecordTimeSpanSearcher, ICacheLayer sweetCacheLayer)
 {
     EventLogCache = sweetCacheLayer;
     ListOfServersToQuery = settingsProvider.ServersToQuery;
     SearchTermsList = settingsProvider.FilterTerm;
     EventRTimeSearcher = eventRecordTimeSpanSearcher;
 }
Esempio n. 3
0
        public GithubRawProvider(HttpClient http, ICacheLayer cache)
        {
            _http  = http;
            _cache = cache;

            _maxCraftedItemLevel = 0;
        }
Esempio n. 4
0
        protected static async Task AssertGetSetCacheAsync(ICacheLayer cacheLayer)
        {
            var cacheEntry = new CacheEntry <int>(12, TimeSpan.FromDays(1));
            await cacheLayer.SetAsync("AssertGetSetCache", cacheEntry);

            var cacheEntryGet = await cacheLayer.GetAsync <int>("AssertGetSetCache");

            Assert.AreEqual(cacheEntry, cacheEntryGet, "Set value in cache doesn't match retrieved value");
        }
Esempio n. 5
0
 public void AddNewCacheLayer(CacheKey key, ICacheLayer layer)
 {
     if (!cacheStructure.ContainsKey(key))
     {
         cacheStructure.Add(key, layer);
     }
     else
     {
     }
 }
 protected static async Task DisposeOf(ICacheLayer cacheLayer)
 {
     if (cacheLayer is IDisposable disposableLayer)
     {
         disposableLayer.Dispose();
     }
     else if (cacheLayer is IAsyncDisposable asyncDisposableLayer)
     {
         await asyncDisposableLayer.DisposeAsync();
     }
 }
Esempio n. 7
0
        protected async ValueTask BenchmarkWork(ICacheLayer cacheLayer)
        {
            for (var iterationCount = 0; iterationCount < WorkIterations; iterationCount++)
            {
                //Get 100 misses
                for (var i = 0; i < 100; i++)
                {
                    await cacheLayer.GetAsync <int>("GetMiss_" + i);
                }

                var startDate = DateTime.UtcNow.AddDays(-50);

                //Set first 100 (simple type)
                for (var i = 0; i < 100; i++)
                {
                    await cacheLayer.SetAsync("Comparison_" + i, new CacheEntry <int>(1, startDate.AddDays(i) + TimeSpan.FromDays(1)));
                }
                //Set last 100 (complex type)
                for (var i = 100; i < 200; i++)
                {
                    await cacheLayer.SetAsync("Comparison_" + i, new CacheEntry <ComplexType>(new ComplexType
                    {
                        ExampleString = "Hello World",
                        ExampleNumber = 42,
                        ExampleDate = new DateTime(2000, 1, 1),
                        DictionaryOfNumbers = new Dictionary <string, int>()
                        {
                            { "A", 1 }, { "B", 2 }, { "C", 3 }
                        }
                    }, startDate.AddDays(i - 100) + TimeSpan.FromDays(1)));
                }

                //Get first 50 (simple type)
                for (var i = 0; i < 50; i++)
                {
                    await cacheLayer.GetAsync <int>("Comparison_" + i);
                }
                //Get last 50 (complex type)
                for (var i = 150; i < 200; i++)
                {
                    await cacheLayer.GetAsync <ComplexType>("Comparison_" + i);
                }

                //Evict middle 100
                for (var i = 50; i < 150; i++)
                {
                    await cacheLayer.EvictAsync("Comparison_" + i);
                }

                //Cleanup outer 100
                await cacheLayer.CleanupAsync();
            }
        }
Esempio n. 8
0
        protected static async Task AssertCacheFlushAsync(ICacheLayer cacheLayer)
        {
            var cacheEntry = new CacheEntry <int>(77, TimeSpan.FromDays(1));
            await cacheLayer.SetAsync("AssertCacheFlush-ToFlush", cacheEntry);

            var cacheEntryGetPreFlush = await cacheLayer.GetAsync <int>("AssertCacheFlush-ToFlush");

            Assert.IsNotNull(cacheEntryGetPreFlush, "Value not set in cache");

            await cacheLayer.FlushAsync();

            var cacheEntryGetPostFlush = await cacheLayer.GetAsync <int>("AssertCacheFlush-ToFlush");

            Assert.IsNull(cacheEntryGetPostFlush, "Didn't flush value that should have been");
        }
Esempio n. 9
0
        protected static async Task AssertCacheCleanupAsync(ICacheLayer cacheLayer)
        {
            async Task <CacheEntry <int> > DoCleanupTest(DateTime dateTime)
            {
                var cacheKey = $"AssertCacheCleanup-(DateTime:{dateTime})";

                var cacheEntry = new CacheEntry <int>(98, dateTime);
                await cacheLayer.SetAsync(cacheKey, cacheEntry);

                await cacheLayer.CleanupAsync();

                return(await cacheLayer.GetAsync <int>(cacheKey));
            }

            Assert.IsNotNull(await DoCleanupTest(DateTime.UtcNow.AddDays(1)), "Cleanup removed entry that was still live");
            Assert.IsNull(await DoCleanupTest(DateTime.UtcNow.AddDays(-1)), "Cleanup kept entry past the end of life");
        }
Esempio n. 10
0
        public LuminaProvider(ICacheLayer cache)
        {
            foreach (string folder in _gameFolders)
            {
                if (Directory.Exists(Path.Combine(Util.ProgramFilesx86(), folder, @"\game\sqpack")))
                {
                    _cyalume = new Cyalume(folder);
                    break;
                }
            }

            if (_cyalume == null)
            {
                throw new DirectoryNotFoundException("sqpack folder not found!");
            }

            _cache = cache;
            _maxCraftedItemLevel = 0;
        }
Esempio n. 11
0
        protected static async Task AssertCacheEvictionAsync(ICacheLayer cacheLayer)
        {
            var cacheEntry = new CacheEntry <int>(77, TimeSpan.FromDays(1));
            await cacheLayer.SetAsync("AssertCacheEviction-ToEvict", cacheEntry);

            await cacheLayer.SetAsync("AssertCacheEviction-ToKeep", cacheEntry);

            var cacheEntryGetPreEviction1 = await cacheLayer.GetAsync <int>("AssertCacheEviction-ToEvict");

            var cacheEntryGetPreEviction2 = await cacheLayer.GetAsync <int>("AssertCacheEviction-ToKeep");

            Assert.IsNotNull(cacheEntryGetPreEviction1, "Value not set in cache");
            Assert.IsNotNull(cacheEntryGetPreEviction2, "Value not set in cache");

            await cacheLayer.EvictAsync("AssertCacheEviction-ToEvict");

            var cacheEntryGetPostEviction1 = await cacheLayer.GetAsync <int>("AssertCacheEviction-ToEvict");

            var cacheEntryGetPostEviction2 = await cacheLayer.GetAsync <int>("AssertCacheEviction-ToKeep");

            Assert.IsNull(cacheEntryGetPostEviction1, "Didn't evict value that should have been");
            Assert.IsNotNull(cacheEntryGetPostEviction2, "Evicted entry that should have been kept");
        }
Esempio n. 12
0
 public GameDataService(HttpClient http, ICacheLayer cache)
 {
     _http  = http;
     _cache = cache;
     ReloadProvider();
 }
Esempio n. 13
0
 public CachedTimezoneLookup(ITimezoneLookup internalLookup, ICacheLayer cacheLayer)
 {
     _internalLookup = internalLookup;
     _cacheLayer     = cacheLayer;
 }
Esempio n. 14
0
 protected static async Task AssertCacheAvailabilityAsync(ICacheLayer cacheLayer, bool expected)
 {
     Assert.AreEqual(expected, await cacheLayer.IsAvailableAsync("AnyCacheKey-DoesntNeedToExist"));
 }
Esempio n. 15
0
 public void RebuildCache <T>() where T : ICacheLayer
 => _cache = Activator.CreateInstance <T>();
Esempio n. 16
0
 public DbDriver(IRedisClientsManager redisClient, ICluster cassandraCluster, MySqlContext mySqlContext)
 {
     _firstCache   = new RedisCache(redisClient);
     _middleCache  = new CassandraCache(cassandraCluster);
     _mySqlContext = mySqlContext;
 }