private void FinishStopping() { if (_runningDispatchers > 0) { return; } if (_runningComponentCount > 0) { return; } _logger.Information( "PROJECTIONS SUBSYSTEM: All components stopped and dispatchers drained for Instance: {correlationId}", _instanceCorrelationId); _subsystemState = SubsystemState.Stopped; if (_restarting) { StartComponents(); return; } if (_nodeState == VNodeState.Leader) { _logger.Information("PROJECTIONS SUBSYSTEM: Node state has changed to Leader. Starting projections."); StartComponents(); } }
private void CalculateSubsystemState(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(DiscardedQubitsBox.Text)) { return; } StateOperator state = StateOperator.FromQuantumState(Layer.GetSystemState()); List <int> discardedQubits = new List <int>(); string qubits = DiscardedQubitsBox.Text.Replace(",", ""); for (int i = 0; i < qubits.Length; i++) { discardedQubits.Add(Convert.ToInt32(qubits[i] - 48)); } SubState = state.PartialTrace(discardedQubits); SubsystemState.ResizeGrid(SubState.RowDimension, SubState.ColumnDimension); for (int i = 0; i < SubState.RowDimension; i++) { for (int j = 0; j < SubState.ColumnDimension; j++) { SubsystemState[i, j] = ComplexParser.ToString(SubState[i, j], 4); } } SubsystemStateGrid.Visibility = Visibility.Visible; if (SubState.Size == 1) { ExamineSubsystemButton.IsEnabled = false; } }
private void StartComponents() { if (_nodeState != VNodeState.Leader) { _logger.Debug("PROJECTIONS SUBSYSTEM: Not starting because node is not leader. Current node state: {nodeState}", _nodeState); return; } if (_subsystemState != SubsystemState.Ready && _subsystemState != SubsystemState.Stopped) { _logger.Debug("PROJECTIONS SUBSYSTEM: Not starting because system is not ready or stopped. Current Subsystem state: {subsystemState}", _subsystemState); return; } if (_runningComponentCount > 0) { _logger.Warning("PROJECTIONS SUBSYSTEM: Subsystem is stopped, but components are still running."); return; } _subsystemState = SubsystemState.Starting; _restarting = false; _instanceCorrelationId = Guid.NewGuid(); _logger.Information("PROJECTIONS SUBSYSTEM: Starting components for Instance: {instanceCorrelationId}", _instanceCorrelationId); _pendingComponentStarts = _componentCount; _leaderMainBus.Publish(new ProjectionSubsystemMessage.StartComponents(_instanceCorrelationId)); }
private void StopComponents() { if (_subsystemState != SubsystemState.Started) { _logger.Debug("PROJECTIONS SUBSYSTEM: Not stopping because subsystem is not in a started state. Current Subsystem state: {state}", _subsystemState); return; } _logger.Information("PROJECTIONS SUBSYSTEM: Stopping components for Instance: {instanceCorrelationId}", _instanceCorrelationId); _subsystemState = SubsystemState.Stopping; _leaderMainBus.Publish(new ProjectionSubsystemMessage.StopComponents(_instanceCorrelationId)); }
public void Handle(SystemMessage.SystemCoreReady message) { if (_subsystemState != SubsystemState.NotReady) { return; } _subsystemState = SubsystemState.Ready; if (_nodeState == VNodeState.Leader) { StartComponents(); } }
private void AllComponentsStarted() { _logger.Info("PROJECTIONS SUBSYSTEM: All components started for Instance: {instanceCorrelationId}", _instanceCorrelationId); _subsystemState = SubsystemState.Started; _masterOutputBus.Publish(new SystemMessage.SubSystemInitialized("Projections")); if (_nodeState != VNodeState.Master) { _logger.Info("PROJECTIONS SUBSYSTEM: Node state is no longer Master. Stopping projections. Current node state: {nodeState}", _nodeState); StopComponents(); } }
private void AllComponentsStarted() { _logger.Information("PROJECTIONS SUBSYSTEM: All components started for Instance: {instanceCorrelationId}", _instanceCorrelationId); _subsystemState = SubsystemState.Started; _runningDispatchers = _dispatcherCount; PublishInitialized(); if (_nodeState != VNodeState.Leader) { _logger.Information("PROJECTIONS SUBSYSTEM: Node state is no longer Leader. Stopping projections. Current node state: {nodeState}", _nodeState); StopComponents(); } }
public void Handle(SystemMessage.SystemCoreReady message) { if (_subsystemState != SubsystemState.NotReady) { return; } _subsystemState = SubsystemState.Ready; if (_nodeState == VNodeState.Leader) { StartComponents(); return; } if (_nodeState == VNodeState.Follower || _nodeState == VNodeState.ReadOnlyReplica) { PublishInitialized(); } }
private void AllComponentsStopped() { _logger.Info("PROJECTIONS SUBSYSTEM: All components stopped for Instance: {instanceCorrelationId}", _instanceCorrelationId); _subsystemState = SubsystemState.Stopped; if (_restarting) { StartComponents(); return; } if (_nodeState == VNodeState.Master) { _logger.Info("PROJECTIONS SUBSYSTEM: Node state has changed to Master. Starting projections."); StartComponents(); } }
internal void OnGetResponseFromAccountService(AccountService.AsyncRequestState asyncRequestState) { switch (asyncRequestState.HttpRequestQueueResultCode) { case HttpRequestQueueResultCode.QueueTimeout: break; case HttpRequestQueueResultCode.Offline: break; case HttpRequestQueueResultCode.QueueFull: break; default: { if (this.healthState.HealthStatus != HealthStatus.Ok) { this.healthState = SubsystemState.MakeOK(SubsystemName); } break; } } }
public virtual void Terminate() { State = SubsystemState.Terminated; }
public virtual void Initialize(IControllerProvider args) { Args = args; State = SubsystemState.Initialized; }