public IEnumerator <TItem> GetEnumerator() { CimOperation cimOperation; TEnumerator tEnumerator = this.CreateEnumerator(); IDisposable disposable = CimApplication.AssertNoPendingShutdown(); using (disposable) { OperationHandle operationHandle = this._operationStarter(tEnumerator); operationHandle.SetExtraFinalizationAction(new Action(tEnumerator.InternalFinalizationHelper)); cimOperation = new CimOperation(operationHandle, this._cancellationToken); } tEnumerator.SetOperation(cimOperation); return(tEnumerator); }
public static CimSession Create(string computerName, CimSessionOptions sessionOptions) { IPAddress pAddress = null; InstanceHandle instanceHandle = null; SessionHandle sessionHandle = null; CimSession cimSession; string protocol; DestinationOptionsHandle destinationOptionsHandle; string str = computerName; if (!string.IsNullOrEmpty(str) && IPAddress.TryParse(str, out pAddress) && pAddress.AddressFamily == AddressFamily.InterNetworkV6 && str[0] != '[') { str = string.Concat("[", str, "]"); } IDisposable disposable = CimApplication.AssertNoPendingShutdown(); using (disposable) { ApplicationHandle handle = CimApplication.Handle; if (sessionOptions == null) { protocol = null; } else { protocol = sessionOptions.Protocol; } string str1 = str; if (sessionOptions == null) { destinationOptionsHandle = null; } else { destinationOptionsHandle = sessionOptions.DestinationOptionsHandle ?? sessionOptions.DestinationOptionsHandleOnDemand; } MiResult miResult = ApplicationMethods.NewSession(handle, protocol, str1, destinationOptionsHandle, out instanceHandle, out sessionHandle); if (miResult != MiResult.NOT_FOUND) { CimException.ThrowIfMiResultFailure(miResult, instanceHandle); CimSession cimSession1 = new CimSession(sessionHandle, computerName); cimSession = cimSession1; } else { throw new CimException(miResult, null, instanceHandle, System.Management.Automation.Strings.UnrecognizedProtocolName); } } return cimSession; }
public IDisposable Subscribe(IObserver <TResult> observer) { CimOperation cimOperation; if (observer != null) { TObserverProxy tObserverProxy = this.CreateObserverProxy(observer); tObserverProxy.SetReportOperationStarted(this._reportOperationStarted); IDisposable disposable = CimApplication.AssertNoPendingShutdown(); using (disposable) { OperationHandle operationHandle = this._operationStarter(tObserverProxy); cimOperation = new CimOperation(operationHandle, this._cancellationToken); } tObserverProxy.SetOperation(cimOperation); return(new CimAsyncCancellationDisposable(cimOperation)); } else { throw new ArgumentNullException("observer"); } }