public ClusterManifestProvider(
     ILocalSiloDetails localSiloDetails,
     SiloManifest localSiloManifest,
     IInternalGrainFactory grainFactory,
     ClusterMembershipService clusterMembershipService,
     IFatalErrorHandler fatalErrorHandler,
     ILogger <ClusterManifestProvider> logger,
     IOptions <TypeManagementOptions> options,
     IServiceProvider services)
 {
     _localSiloAddress         = localSiloDetails.SiloAddress;
     _grainFactory             = grainFactory;
     _logger                   = logger;
     _services                 = services;
     _clusterMembershipService = clusterMembershipService;
     _fatalErrorHandler        = fatalErrorHandler;
     _options                  = options.Value;
     _current                  = new ClusterManifest(
         MajorMinorVersion.Zero,
         ImmutableDictionary.CreateRange(new[] { new KeyValuePair <SiloAddress, SiloManifest>(localSiloDetails.SiloAddress, localSiloManifest) }));
     _updates = new AsyncEnumerable <ClusterManifest>(
         (previous, proposed) => previous.Version <= MajorMinorVersion.Zero || proposed.Version > previous.Version,
         _current)
     {
         OnPublished = update => Interlocked.Exchange(ref _current, update)
     };
 }
示例#2
0
 public ClusterManifestSystemTarget(
     SiloManifest siloManifest,
     IClusterManifestProvider clusterManifestProvider,
     ILocalSiloDetails siloDetails,
     ILoggerFactory loggerFactory)
     : base(Constants.ManifestProviderType, siloDetails.SiloAddress, loggerFactory)
 {
     _siloManifest            = siloManifest;
     _clusterManifestProvider = clusterManifestProvider;
 }