public AttributesAgentActor( Node node, IClusterApplication application, IOperationalOutboundStream outbound, IConfiguration configuration) : this(node, application, outbound, configuration, new NoOpConfirmationInterest(configuration)) { }
internal ConfirmingDistributor(IClusterApplication application, Node node, IOperationalOutboundStream outbound, IConfiguration configuration) { _application = application; _node = node; _outbound = outbound; _logger = configuration.Logger; _allOtherNodes = configuration.AllOtherNodes(node.Id); _confirmables = new Confirmables(node, _allOtherNodes); }
public static IAttributesAgent Instance( Stage stage, Node node, IClusterApplication application, IOperationalOutboundStream outbound, IConfiguration configuration) { var attributesAgent = stage.ActorFor <IAttributesAgent>( () => new AttributesAgentActor(node, application, outbound, configuration), "attributes-agent"); return(attributesAgent); }
public static IAttributesAgent Instance( Stage stage, Node node, IClusterApplication application, IOperationalOutboundStream outbound, IConfiguration configuration) { var definition = Definition.Has<AttributesAgentActor>( Definition.Parameters(node, application, outbound, configuration), "attributes-agent"); var attributesAgent = stage.ActorFor<IAttributesAgent>(definition); return attributesAgent; }
public AttributesAgentActor( Node node, IClusterApplication application, IOperationalOutboundStream outbound, IConfiguration configuration, IConfirmationInterest confirmationInterest) { _node = node; _configuration = configuration; _confirmationInterest = confirmationInterest; _client = AttributesClient.With(SelfAs <IAttributesAgent>()); _confirmingDistributor = new ConfirmingDistributor(application, node, outbound, configuration); _repository = new AttributeSetRepository(); _remoteRequestHandler = new RemoteAttributeRequestHandler(_confirmingDistributor, configuration, _repository); application.InformAttributesClient(_client); Stage.Scheduler.Schedule(SelfAs <IScheduled <object> >(), null, TimeSpan.FromMilliseconds(1000L), TimeSpan.FromMilliseconds(Properties.Instance.ClusterAttributesRedistributionInterval())); }
public ClusterSnapshotActor(ClusterSnapshotInitializer initializer, IClusterApplication clusterApplication) { _broadcaster = new ClusterApplicationBroadcaster(Logger); _communicationsHub = initializer.CommunicationsHub; _communicationsHub.Open(Stage, initializer.LocalNode, SelfAs <IInboundStreamInterest>(), initializer.Configuration); _localNode = initializer.LocalNode; _clusterApplication = clusterApplication; _broadcaster.RegisterClusterApplication(clusterApplication); _clusterApplication.Start(); initializer.Registry.RegisterRegistryInterest(SelfAs <IRegistryInterest>()); _attributesAgent = AttributesAgentFactory.Instance(Stage, _localNode, _broadcaster, _communicationsHub.OperationalOutboundStream, initializer.Configuration); _localLiveNode = LocalLiveNodeFactory.Instance(Stage, _localNode, SelfAs <IClusterSnapshot>(), initializer.Registry, _communicationsHub.OperationalOutboundStream, initializer.Configuration); _localLiveNode.RegisterNodeSynchronizer(_attributesAgent); _communicationsHub.Start(); }
public void RegisterClusterApplication(IClusterApplication clusterApplication) => _clusterApplications.Add(clusterApplication);