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); }
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); }