internal void PromptUserCallbackInternal(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, string message, MiPromptType promptType, out MIResponseType response)
 {
     response = MIResponseType.MIResponseTypeYes;
     if (this._promptUserCallback != null)
     {
         //CimAsyncCallbacksReceiverBase managedOperationContext = (CimAsyncCallbacksReceiverBase)callbackProcessingContext.ManagedOperationContext;
         CimResponseType userResponse = CimResponseType.None;
         //managedOperationContext.CallIntoUserCallback(callbackProcessingContext, () => userResponse = this._promptUserCallback(message, (CimPromptType)promptType), false, false);
         response = (MIResponseType)userResponse;
     }
 }
        internal void StreamedParameterCallback(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, string parameterName, object parameterValue, MiType parameterType)
        {
            parameterValue = CimInstance.ConvertFromNativeLayer(parameterValue, null, null, !this._shortenLifetimeOfResults);
            CimInstance cimInstance = parameterValue as CimInstance;

            if (cimInstance != null)
            {
                cimInstance.SetCimSessionComputerName(this._CimSessionComputerName);
                cimInstance.SetCimSessionInstanceId(this._CimSessionInstanceID);
            }
            CimInstance[] cimInstanceArray = parameterValue as CimInstance[];
            if (cimInstanceArray != null)
            {
                CimInstance[] cimInstanceArray1 = cimInstanceArray;
                for (int i = 0; i < (int)cimInstanceArray1.Length; i++)
                {
                    CimInstance cimInstance1 = cimInstanceArray1[i];
                    if (cimInstance1 != null)
                    {
                        cimInstance1.SetCimSessionComputerName(this._CimSessionComputerName);
                        cimInstance1.SetCimSessionInstanceId(this._CimSessionInstanceID);
                    }
                }
            }
            try
            {
                CimMethodResultBase cimMethodStreamedResult = new CimMethodStreamedResult(parameterName, parameterValue, parameterType.ToCimType());
                base.ProcessNativeCallback(callbackProcessingContext, cimMethodStreamedResult, true, MiResult.OK, null, null);
            }
            finally
            {
                if (this._shortenLifetimeOfResults)
                {
                    CimInstance cimInstance2 = parameterValue as CimInstance;
                    if (cimInstance2 != null)
                    {
                        cimInstance2.Dispose();
                    }
                    CimInstance[] cimInstanceArray2 = parameterValue as CimInstance[];
                    if (cimInstanceArray2 != null)
                    {
                        CimInstance[] cimInstanceArray3 = cimInstanceArray2;
                        for (int j = 0; j < (int)cimInstanceArray3.Length; j++)
                        {
                            CimInstance cimInstance3 = cimInstanceArray3[j];
                            if (cimInstance3 != null)
                            {
                                cimInstance3.Dispose();
                            }
                        }
                    }
                }
            }
        }
        private void WriteProgressCallbackInternal(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, string activity, string currentOperation, string statusDescription, int percentageCompleted, int secondsRemaining)
        {
            Action userCallback = null;

            if (this._writeProgressCallback != null)
            {
                //CimAsyncCallbacksReceiverBase managedOperationContext = (CimAsyncCallbacksReceiverBase)callbackProcessingContext.ManagedOperationContext;
                if (userCallback == null)
                {
                    userCallback = () => this._writeProgressCallback(activity, currentOperation, statusDescription, percentageCompleted, secondsRemaining);
                }
                //managedOperationContext.CallIntoUserCallback(callbackProcessingContext, userCallback, false, false);
            }
        }
        internal void WriteMessageCallbackInternal(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, uint channel, string message)
        {
            Action userCallback = null;

            if (this._writeMessageCallback != null)
            {
                //CimAsyncCallbacksReceiverBase managedOperationContext = (CimAsyncCallbacksReceiverBase)callbackProcessingContext.ManagedOperationContext;
                if (userCallback == null)
                {
                    userCallback = () => this._writeMessageCallback(channel, message);
                }
                //managedOperationContext.CallIntoUserCallback(callbackProcessingContext, userCallback, false, false);
            }
        }
Example #5
0
 internal void CallIntoUserCallback(OperationCallbackProcessingContext callbackProcessingContext, Action userCallback, bool serializeCallbacks = false, bool suppressFurtherUserCallbacks = false)
 {
     lock (this._suppressFurtherUserCallbacksLock)
     {
         if (!this._suppressFurtherUserCallbacks)
         {
             if (suppressFurtherUserCallbacks)
             {
                 this._suppressFurtherUserCallbacks = true;
             }
             callbackProcessingContext.InUserCode = true;
             this.CallUnderOriginalExecutionContext(userCallback);
             callbackProcessingContext.InUserCode = false;
         }
     }
 }
        internal void ProcessNativeCallback(OperationCallbackProcessingContext callbackProcessingContext, T currentItem, bool moreResults, MiResult operationResult, string errorMessage, InstanceHandle errorDetailsHandle)
        {
            Action <CimOperation> action = null;

            if (!moreResults)
            {
                base.DisposeOperationWhenPossible();
            }
            if (currentItem != null || operationResult != MiResult.OK)
            {
                if (currentItem != null)
                {
                    this.OnNextInternal(callbackProcessingContext, currentItem);
                }
            }
            else
            {
                if (this._reportOperationStarted)
                {
                    this.OnNextInternal(callbackProcessingContext, currentItem);
                }
            }
            CimException exceptionIfMiResultFailure = CimException.GetExceptionIfMiResultFailure(operationResult, errorMessage, errorDetailsHandle);

            if (exceptionIfMiResultFailure != null)
            {
                try
                {
                    throw exceptionIfMiResultFailure;
                }
                catch (CimException cimException1)
                {
                    CimException cimException = cimException1;
                    exceptionIfMiResultFailure = cimException;
                }
            }
            if (!moreResults)
            {
                CimAsyncObserverProxyBase <T> cimAsyncObserverProxyBase = this;
                if (action == null)
                {
                    action = (CimOperation cimOperation) => this.ProcessEndOfResultsWorker(callbackProcessingContext, cimOperation, exceptionIfMiResultFailure);
                }
                cimAsyncObserverProxyBase.InvokeWhenOperationIsSet(action);
            }
        }
Example #7
0
 internal override void ReportInternalError(OperationCallbackProcessingContext callbackProcessingContext, Exception internalError)
 {
     lock (this._internalErrorWhileProcessingAsyncCallbackLock)
     {
         if (this._internalErrorWhileProcessingAsyncCallback != null)
         {
             Exception   exception      = this._internalErrorWhileProcessingAsyncCallback;
             Exception[] exceptionArray = new Exception[2];
             exceptionArray[0] = exception;
             exceptionArray[1] = internalError;
             this._internalErrorWhileProcessingAsyncCallback = new AggregateException(exceptionArray);
         }
         else
         {
             this._internalErrorWhileProcessingAsyncCallback = internalError;
         }
     }
 }
 internal void WriteErrorCallbackInternal(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, InstanceHandle instanceHandle, out MIResponseType response)
 {
     response = MIResponseType.MIResponseTypeYes;
     if (this._writeErrorCallback != null)
     {
         CimInstance cimInstance = null;
         using (cimInstance)
         {
             if (instanceHandle != null)
             {
                 cimInstance = new CimInstance(instanceHandle, null);
                 //CimAsyncCallbacksReceiverBase managedOperationContext = (CimAsyncCallbacksReceiverBase)callbackProcessingContext.ManagedOperationContext;
                 CimResponseType userResponse = CimResponseType.None;
                 //managedOperationContext.CallIntoUserCallback(callbackProcessingContext, () => userResponse = this._writeErrorCallback(cimInstance), false, false);
                 response = (MIResponseType)userResponse;
             }
         }
     }
 }
        internal void IndicationResultCallback(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, InstanceHandle instanceHandle, string bookMark, string machineID, bool moreResults, MiResult operationResult, string errorMessage, InstanceHandle errorDetailsHandle)
        {
            CimSubscriptionResult cimSubscriptionResult = null;

            if (instanceHandle != null && !instanceHandle.IsInvalid)
            {
                if (!this._shortenLifetimeOfResults)
                {
                    instanceHandle = instanceHandle.Clone();
                }
                cimSubscriptionResult = new CimSubscriptionResult(instanceHandle, bookMark, machineID);
            }
            using (cimSubscriptionResult)
            {
                if (!this._shortenLifetimeOfResults || cimSubscriptionResult == null)
                {
                    base.ProcessNativeCallback(callbackProcessingContext, cimSubscriptionResult, moreResults, operationResult, errorMessage, errorDetailsHandle);
                }
            }
        }
Example #10
0
        internal void ClassCallback(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, ClassHandle ClassHandle, bool moreResults, MiResult operationResult, string errorMessage, InstanceHandle errorDetailsHandle)
        {
            CimClass cimClass = null;

            if (ClassHandle != null && !ClassHandle.IsInvalid)
            {
                if (!this._shortenLifetimeOfResults)
                {
                    ClassHandle = ClassHandle.Clone();
                }
                cimClass = new CimClass(ClassHandle);
            }
            //using (cimClass)
            {
                if (!this._shortenLifetimeOfResults || cimClass == null)
                {
                    base.ProcessNativeCallback(callbackProcessingContext, cimClass, moreResults, operationResult, errorMessage, errorDetailsHandle);
                }
            }
        }
Example #11
0
        internal void InstanceResultCallback(OperationCallbackProcessingContext callbackProcessingContext, OperationHandle operationHandle, InstanceHandle instanceHandle, bool moreResults, MiResult operationResult, string errorMessage, InstanceHandle errorDetailsHandle)
        {
            CimInstance cimInstance = null;

            if (instanceHandle != null && !instanceHandle.IsInvalid)
            {
                if (!this._shortenLifetimeOfResults)
                {
                    instanceHandle = instanceHandle.Clone();
                }
                cimInstance = new CimInstance(instanceHandle, null);
                cimInstance.SetCimSessionComputerName(this._CimSessionComputerName);
                cimInstance.SetCimSessionInstanceId(this._CimSessionInstanceID);
            }
            //TODO: using (cimInstance)
            {
                if (!this._shortenLifetimeOfResults || cimInstance == null)
                {
                    base.ProcessNativeCallback(callbackProcessingContext, cimInstance, moreResults, operationResult, errorMessage, errorDetailsHandle);
                }
            }
        }
        private void ProcessEndOfResultsWorker(OperationCallbackProcessingContext callbackProcessingContext, CimOperation cimOperation, Exception exception)
        {
            if (exception != null)
            {
                CancellationMode cancellationMode  = cimOperation.CancellationMode;
                CancellationMode cancellationMode1 = cancellationMode;
                switch (cancellationMode1)
                {
                case CancellationMode.NoCancellationOccured:
                case CancellationMode.IgnoreCancellationRequests:
                {
                    this.OnErrorInternal(callbackProcessingContext, exception);
                    return;
                }

                case CancellationMode.ThrowOperationCancelledException:
                {
                    this.OnErrorInternal(callbackProcessingContext, new OperationCanceledException(exception.Message, exception));
                    return;
                }

                case CancellationMode.SilentlyStopProducingResults:
                {
                    return;
                }

                default:
                {
                    return;
                }
                }
            }
            else
            {
                this.OnCompletedInternal(callbackProcessingContext);
                return;
            }
        }
Example #13
0
 private void ReportInternalErrorCore(OperationCallbackProcessingContext callbackProcessingContext, Exception internalError)
 {
     this.InvokeWhenOperationIsSet((CimOperation cimOperation) => {
         lock (this)
         {
             try
             {
                 cimOperation.Cancel(CancellationMode.SilentlyStopProducingResults);
             }
             catch (Exception exception2)
             {
                 Exception exception        = exception2;
                 Exception exception1       = internalError;
                 Exception[] exceptionArray = new Exception[2];
                 exceptionArray[0]          = exception1;
                 exceptionArray[1]          = exception;
                 internalError = new AggregateException(exceptionArray);
             }
             this.ReportInternalError(callbackProcessingContext, internalError);
         }
     }
                                   );
 }
 internal override void ReportInternalError(OperationCallbackProcessingContext callbackProcessingContext, Exception internalError)
 {
     this.OnErrorInternal(callbackProcessingContext, internalError);
 }
Example #15
0
 internal abstract void ReportInternalError(OperationCallbackProcessingContext callbackProcessingContext, Exception internalError);
 private void OnErrorInternal(OperationCallbackProcessingContext callbackProcessingContext, Exception exception)
 {
     base.CallIntoUserCallback(callbackProcessingContext, () => ((CimAsyncObserverProxyBase <T>) this)._observer.OnError(exception), false, true);
 }
 private void OnNextInternal(OperationCallbackProcessingContext callbackProcessingContext, T item)
 {
     base.CallIntoUserCallback(callbackProcessingContext, () => ((CimAsyncObserverProxyBase <T>) this)._observer.OnNext(item), false, false);
 }
        private void OnCompletedInternal(OperationCallbackProcessingContext callbackProcessingContext)
        {
            IObserver <T> observer = this._observer;

            base.CallIntoUserCallback(callbackProcessingContext, new Action(observer.OnCompleted), false, true);
        }