예제 #1
0
        public static IGrainLocator GetGrainLocator(IServiceProvider sp)
        {
            var customDirectory       = sp.GetService <IGrainDirectory>();
            var inClusterGrainLocator = new InClusterGrainLocator(sp.GetRequiredService <ILocalGrainDirectory>());

            return(customDirectory != null
                ? new GrainLocator(customDirectory, inClusterGrainLocator)
                : (IGrainLocator)inClusterGrainLocator);
        }
예제 #2
0
 public GrainLocator(IGrainDirectory grainDirectory, InClusterGrainLocator inClusterGrainLocator)
 {
     this.grainDirectory        = grainDirectory;
     this.inClusterGrainLocator = inClusterGrainLocator;
     this.cache = new LRUBasedGrainDirectoryCache(GrainDirectoryOptions.DEFAULT_CACHE_SIZE, GrainDirectoryOptions.DEFAULT_MAXIMUM_CACHE_TTL);
 }