internal PSWmiChildJob(Cmdlet cmds, string computerName, ThrottleManager throttleManager, int count) : base(null, null) { this.syncObject = new object(); this.statusMessage = "test"; base.UsesResultsCollection = true; this.computerName = computerName; this.throttleManager = throttleManager; this.wmiSinkArray = new ArrayList(); ManagementOperationObserver managementOperationObserver = new ManagementOperationObserver(); this.wmiSinkArray.Add(managementOperationObserver); PSWmiChildJob pSWmiChildJob = this; pSWmiChildJob.sinkCompleted = pSWmiChildJob.sinkCompleted + count; managementOperationObserver.ObjectReady += new ObjectReadyEventHandler(this.NewObject); managementOperationObserver.Completed += new CompletedEventHandler(this.JobDone); this.helper = new WmiAsyncCmdletHelper(this, cmds, computerName, managementOperationObserver, count); this.helper.WmiOperationState += new EventHandler <WmiJobStateEventArgs>(this.HandleWMIState); this.helper.ShutdownComplete += new EventHandler <EventArgs>(this.JobDoneForWin32Shutdown); base.SetJobState(JobState.NotStarted); IThrottleOperation throttleOperation = this.helper; throttleOperation.OperationComplete += new EventHandler <OperationStateEventArgs>(this.HandleOperationComplete); throttleManager.ThrottleComplete += new EventHandler <EventArgs>(this.HandleThrottleComplete); throttleManager.AddOperation(throttleOperation); }
internal List <Job> GetJobsForOperation(IThrottleOperation operation) { List <Job> list = new List <Job>(); ExecutionCmdletHelper helper = operation as ExecutionCmdletHelper; foreach (Job job in base.ChildJobs) { PSRemotingChildJob item = job as PSRemotingChildJob; if ((job != null) && item.Helper.Equals(helper)) { list.Add(item); } } return(list); }
internal List <Job> GetJobsForOperation(IThrottleOperation operation) { using (PSRemotingJob.tracer.TraceMethod()) { List <Job> jobList = new List <Job>(); ExecutionCmdletHelper executionCmdletHelper = operation as ExecutionCmdletHelper; foreach (Job childJob in (IEnumerable <Job>) this.ChildJobs) { PSRemotingChildJob remotingChildJob = childJob as PSRemotingChildJob; if (childJob != null && remotingChildJob.Helper.Equals((object)executionCmdletHelper)) { jobList.Add((Job)remotingChildJob); } } return(jobList); } }
protected void AggregateResultsFromHelper(ExecutionCmdletHelper helper) { Pipeline pipeline = helper.Pipeline; pipeline.Output.DataReady += new EventHandler(this.HandleOutputReady); pipeline.Error.DataReady += new EventHandler(this.HandleErrorReady); pipeline.StateChanged += new EventHandler <PipelineStateEventArgs>(this.HandlePipelineStateChanged); RemotePipeline pipeline2 = pipeline as RemotePipeline; pipeline2.MethodExecutorStream.DataReady += new EventHandler(this.HandleHostCalls); pipeline2.PowerShell.Streams.Progress.DataAdded += new EventHandler <DataAddedEventArgs>(this.HandleProgressAdded); pipeline2.PowerShell.Streams.Warning.DataAdded += new EventHandler <DataAddedEventArgs>(this.HandleWarningAdded); pipeline2.PowerShell.Streams.Verbose.DataAdded += new EventHandler <DataAddedEventArgs>(this.HandleVerboseAdded); pipeline2.PowerShell.Streams.Debug.DataAdded += new EventHandler <DataAddedEventArgs>(this.HandleDebugAdded); pipeline2.IsMethodExecutorStreamEnabled = true; IThrottleOperation operation = helper; operation.OperationComplete += new EventHandler <OperationStateEventArgs>(this.HandleOperationComplete); }
internal PSRemotingChildJob(ExecutionCmdletHelper helper, ThrottleManager throttleManager, bool aggregateResults = false) { this.hideComputerName = true; this.SyncObject = new object(); base.UsesResultsCollection = true; this.helper = helper; this.remotePipeline = helper.Pipeline as RemotePipeline; this.remoteRunspace = helper.Pipeline.Runspace; this.throttleManager = throttleManager; if (aggregateResults) { this.AggregateResultsFromHelper(helper); } else { this.remotePipeline.StateChanged += new EventHandler <PipelineStateEventArgs>(this.HandlePipelineStateChanged); this.remotePipeline.Output.DataReady += new EventHandler(this.HandleOutputReady); this.remotePipeline.Error.DataReady += new EventHandler(this.HandleErrorReady); } IThrottleOperation operation = helper; operation.OperationComplete += new EventHandler <OperationStateEventArgs>(this.HandleOperationComplete); base.SetJobState(JobState.Disconnected, null); }