internal static IGrainDirectoryCache CreateGrainDirectoryCache(GrainDirectoryOptions options) { if (options.CacheSize <= 0) { return(new NullGrainDirectoryCache()); } switch (options.CachingStrategy) { case GrainDirectoryOptions.CachingStrategyType.None: return(new NullGrainDirectoryCache()); case GrainDirectoryOptions.CachingStrategyType.LRU: return(new LRUBasedGrainDirectoryCache(options.CacheSize, options.MaximumCacheTTL)); default: return(new AdaptiveGrainDirectoryCache(options.InitialCacheTTL, options.MaximumCacheTTL, options.CacheTTLExtensionFactor, options.CacheSize)); } }
public TestDirectoryCache(IServiceProvider serviceProvider) { var options = new GrainDirectoryOptions(); InnerCache = GrainDirectoryCacheFactory.CreateGrainDirectoryCache(serviceProvider, options); }
public static IGrainDirectoryCache CreateGrainDirectoryCache(IServiceProvider services, GrainDirectoryOptions options) { if (options.CacheSize <= 0) { return(new NullGrainDirectoryCache()); } switch (options.CachingStrategy) { case GrainDirectoryOptions.CachingStrategyType.None: return(new NullGrainDirectoryCache()); case GrainDirectoryOptions.CachingStrategyType.LRU: return(new LRUBasedGrainDirectoryCache(options.CacheSize, options.MaximumCacheTTL)); case GrainDirectoryOptions.CachingStrategyType.Adaptive: return(new AdaptiveGrainDirectoryCache(options.InitialCacheTTL, options.MaximumCacheTTL, options.CacheTTLExtensionFactor, options.CacheSize)); case GrainDirectoryOptions.CachingStrategyType.Custom: default: return(services.GetRequiredService <IGrainDirectoryCache>()); } }