Ejemplo n.º 1
0
 internal ClusterSnapshotInitializer(string nodeNameText, Properties properties, ILogger logger)
 {
     _localNodeId       = Id.Of(properties.NodeId(nodeNameText));
     _configuration     = new ClusterConfiguration(logger);
     _localNode         = _configuration.NodeMatching(_localNodeId);
     _communicationsHub = new NetworkCommunicationsHub();
     _registry          = new LocalRegistry(_localNode, _configuration, logger);
 }
        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();
        }