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

            return(customDirectory != null
                ? new GrainLocator(customDirectory, inClusterGrainLocator)
                : (IGrainLocator)inClusterGrainLocator);
        }
示例#2
0
 public GrainLocator(
     IGrainDirectory grainDirectory,
     DhtGrainLocator inClusterGrainLocator,
     IClusterMembershipService clusterMembershipService)
 {
     this.grainDirectory           = grainDirectory;
     this.inClusterGrainLocator    = inClusterGrainLocator;
     this.clusterMembershipService = clusterMembershipService;
     this.cache = new LRUBasedGrainDirectoryCache(GrainDirectoryOptions.DEFAULT_CACHE_SIZE, GrainDirectoryOptions.DEFAULT_MAXIMUM_CACHE_TTL);
 }
示例#3
0
 public GrainLocatorResolver(
     GrainDirectoryResolver grainDirectoryResolver,
     CachedGrainLocator cachedGrainLocator,
     DhtGrainLocator dhtGrainLocator,
     ClientGrainLocator clientGrainLocator)
 {
     this.getLocatorInternal     = GetGrainLocatorInternal;
     this.grainDirectoryResolver = grainDirectoryResolver;
     this.cachedGrainLocator     = cachedGrainLocator;
     this.dhtGrainLocator        = dhtGrainLocator;
     this.clientGrainLocator     = clientGrainLocator;
 }
 public GrainLocatorSelector(IGrainDirectoryResolver grainDirectoryResolver, CachedGrainLocator cachedGrainLocator, DhtGrainLocator dhtGrainLocator)
 {
     this.grainDirectoryResolver = grainDirectoryResolver;
     this.cachedGrainLocator     = cachedGrainLocator;
     this.dhtGrainLocator        = dhtGrainLocator;
 }