// [rgn] Public Methods (2) public static bool IsDone(this PipelineStateInfo psi) { return (psi.State == PipelineState.Completed || psi.State == PipelineState.Stopped || psi.State == PipelineState.Failed); }
internal PSInvocationStateInfo(PipelineStateInfo pipelineStateInfo) { using (PSInvocationStateInfo.tracer.TraceConstructor((object)this)) { this.executionState = (PSInvocationState)pipelineStateInfo.State; this.exceptionReason = pipelineStateInfo.Reason; } }
internal PipelineStateInfo(PipelineStateInfo pipelineStateInfo) { using (PipelineStateInfo._trace.TraceConstructor((object)this)) { this._state = pipelineStateInfo.State; this._reason = pipelineStateInfo.Reason; } }
private void SetPipelineState(PipelineState state, Exception reason) { _pipelineStateInfo = new PipelineStateInfo(state, reason); if (StateChanged != null) { StateChanged(this, new PipelineStateEventArgs(_pipelineStateInfo)); } }
public ExecutionEventQueueItem( PipelineStateInfo pipelineStateInfo, RunspaceAvailability currentAvailability, RunspaceAvailability newAvailability) { this.PipelineStateInfo = pipelineStateInfo; this.CurrentRunspaceAvailability = currentAvailability; this.NewRunspaceAvailability = newAvailability; }
private void SetPipelineState(PipelineState state, Exception reason) { using (RemotePipeline._trace.TraceMethod("{0} to {1} {2}", (object)this._pipelineStateInfo.State, (object)state, reason != null ? (object)reason.Message : (object)"")) { PipelineState state1 = state; PipelineStateInfo pipelineStateInfo = (PipelineStateInfo)null; lock (this._syncRoot) { switch (this._pipelineStateInfo.State) { case PipelineState.Running: if (state == PipelineState.Running) { return; } break; case PipelineState.Stopping: if (state == PipelineState.Running || state == PipelineState.Stopping) { return; } state1 = PipelineState.Stopped; break; case PipelineState.Stopped: return; case PipelineState.Completed: return; case PipelineState.Failed: return; } this._pipelineStateInfo = new PipelineStateInfo(state1, reason); pipelineStateInfo = this._pipelineStateInfo; RunspaceAvailability runspaceAvailability = this._runspace.RunspaceAvailability; this._runspace.UpdateRunspaceAvailability(this._pipelineStateInfo.State, false); this._executionEventQueue.Enqueue(new RemotePipeline.ExecutionEventQueueItem(this._pipelineStateInfo.Clone(), runspaceAvailability, this._runspace.RunspaceAvailability)); } if (pipelineStateInfo.State != PipelineState.Completed && pipelineStateInfo.State != PipelineState.Failed && pipelineStateInfo.State != PipelineState.Stopped) { return; } this.Cleanup(); } }
public LocalPipeline(LocalRunspace runspace, string command) : base() { _runspace = runspace; _inputStream = new ObjectStream(); _outputStream = new ObjectStream(); _errorStream = new ObjectStream(); _inputPipelineWriter = new ObjectStreamWriter(_inputStream); _outputPipelineReader = new PSObjectPipelineReader(_outputStream); _errorPipelineReader = new ObjectPipelineReader(_errorStream); _pipelineStateInfo = new PipelineStateInfo(PipelineState.NotStarted); if (!string.IsNullOrEmpty(command)) { Commands.Add(command); } }
/// <summary> /// Sets the new execution state. /// </summary> /// <param name="state">the new state</param> /// <param name="reason"> /// An exception indicating that state change is the result of an error, /// otherwise; null. /// </param> /// <remarks> /// Sets the internal execution state information member variable. It /// also adds PipelineStateInfo to a queue. RaisePipelineStateEvents /// raises event for each item in this queue. /// </remarks> private void SetPipelineState(PipelineState state, Exception reason) { PipelineState copyState = state; PipelineStateInfo copyStateInfo = null; lock (_syncRoot) { switch (_pipelineStateInfo.State) { case PipelineState.Completed: case PipelineState.Failed: case PipelineState.Stopped: return; case PipelineState.Running: { if (state == PipelineState.Running) { return; } } break; case PipelineState.Stopping: { if (state == PipelineState.Running || state == PipelineState.Stopping) { return; } else { copyState = PipelineState.Stopped; } } break; } _pipelineStateInfo = new PipelineStateInfo(copyState, reason); copyStateInfo = _pipelineStateInfo; //Add _pipelineStateInfo to _executionEventQueue. //RaisePipelineStateEvents will raise event for each item //in this queue. //Note:We are doing clone here instead of passing the member //_pipelineStateInfo because we donot want outside //to change pipeline state. RunspaceAvailability previousAvailability = _runspace.RunspaceAvailability; Guid?cmdInstanceId = (_powershell != null) ? _powershell.InstanceId : (Guid?)null; _runspace.UpdateRunspaceAvailability(_pipelineStateInfo.State, false, cmdInstanceId); _executionEventQueue.Enqueue( new ExecutionEventQueueItem( _pipelineStateInfo.Clone(), previousAvailability, _runspace.RunspaceAvailability)); } // lock... // using the copyStateInfo here as this piece of code is // outside of lock and _pipelineStateInfo might get changed // by two threads running concurrently..so its value is // not guaranteed to be the same for this entire method call. // copyStateInfo is a local variable. if (copyStateInfo.State == PipelineState.Completed || copyStateInfo.State == PipelineState.Failed || copyStateInfo.State == PipelineState.Stopped) { Cleanup(); } }
internal PSInvocationStateInfo(PipelineStateInfo pipelineStateInfo) { throw new NotImplementedException(); }
public static bool IsFailed(this PipelineStateInfo info) { return(info.State == PipelineState.Failed); }
internal PSInvocationStateInfo(PipelineStateInfo pipelineStateInfo) { this.executionState = (PSInvocationState)pipelineStateInfo.State; this.exceptionReason = pipelineStateInfo.Reason; }
internal PipelineStateEventArgs(PipelineStateInfo pipelineStateInfo) { using (PipelineStateEventArgs._trace.TraceConstructor((object)this)) this._pipelineStateInfo = pipelineStateInfo; }