/// <summary> /// <para> /// Consume the results of async operations /// </para> /// </summary> /// <param name="asyncResult"></param> /// <param name="cimResultContext"></param> protected void ConsumeObjectAsync(IObservable<object> asyncResult, CimResultContext cimResultContext) { CimResultObserver<object> observer = new CimResultObserver<object>( this.session, asyncResult, cimResultContext); observer.OnNewResult += this.ResultEventHandler; this.operationID = Interlocked.Increment(ref gOperationCounter); this.AddOperation(asyncResult); this.CancelOperation = asyncResult.Subscribe(observer); DebugHelper.WriteLog("FireOperationCreatedEvent"); this.FireOperationCreatedEvent(this.CancelOperation, asyncResult); }
/// <summary> /// <para> /// Consume the <see cref="CimClass"/> of async operations /// </para> /// </summary> /// <param name="asyncResult"></param> /// <param name="cimResultContext"></param> protected void ConsumeCimClassAsync(IObservable<CimClass> asyncResult, CimResultContext cimResultContext) { CimResultObserver<CimClass> observer = new CimResultObserver<CimClass>( this.session, asyncResult, cimResultContext); observer.OnNewResult += this.ResultEventHandler; this.operationID = Interlocked.Increment(ref gOperationCounter); this.AddOperation(asyncResult); this.CancelOperation = asyncResult.Subscribe(observer); this.FireOperationCreatedEvent(this.CancelOperation, asyncResult); }
/// <summary> /// <para> /// Consume the CimInstance results of async operations. /// </para> /// </summary> /// <param name="asyncResult"></param> /// <param name="ignoreResultObjects"></param> /// <param name="cimResultContext"></param> protected void ConsumeCimInstanceAsync( IObservable<CimInstance> asyncResult, bool ignoreResultObjects, CimResultContext cimResultContext) { CimResultObserver<CimInstance> observer; if (ignoreResultObjects) { observer = new IgnoreResultObserver(this.session, asyncResult); } else { observer = new CimResultObserver<CimInstance>(this.session, asyncResult, cimResultContext); } observer.OnNewResult += this.ResultEventHandler; this.operationID = Interlocked.Increment(ref gOperationCounter); this.AddOperation(asyncResult); this.CancelOperation = asyncResult.Subscribe(observer); this.FireOperationCreatedEvent(this.CancelOperation, asyncResult); }