Exemplo n.º 1
0
        public bool EndTryReceiveRequest(IAsyncResult asyncResult, out RequestContext requestContext)
        {
            if (asyncResult == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("asyncResult");
            }

            ReceiveTimeoutAsyncResult result = asyncResult as ReceiveTimeoutAsyncResult;

            if (result == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.AsyncEndCalledWithAnIAsyncResult)));
            }

            RequestContext innerContext;

            if (InnerChannel.EndTryReceiveRequest(result.InnerResult, out innerContext))
            {
                requestContext = FinishReceiveRequest(innerContext, result.TimeoutHelper.RemainingTime());
                return(true);
            }
            else
            {
                requestContext = null;
                return(false);
            }
        }
Exemplo n.º 2
0
        public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
        {
            ReceiveTimeoutAsyncResult result = new ReceiveTimeoutAsyncResult(timeout, callback, state);

            result.InnerResult = this.InnerChannel.BeginTryReceiveRequest(timeout, result.InnerCallback, result.InnerState);
            return(result);
        }
Exemplo n.º 3
0
        private static void Callback(IAsyncResult result)
        {
            if (result == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("result");
            }
            ReceiveTimeoutAsyncResult asyncState = (ReceiveTimeoutAsyncResult)result.AsyncState;

            asyncState.InnerResult = result;
            asyncState.Complete(result.CompletedSynchronously);
        }
Exemplo n.º 4
0
        public bool EndTryReceiveRequest(IAsyncResult asyncResult, out RequestContext requestContext)
        {
            RequestContext context;

            if (asyncResult == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("asyncResult");
            }
            ReceiveTimeoutAsyncResult result = asyncResult as ReceiveTimeoutAsyncResult;

            if (result == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.ServiceModel.SR.GetString("AsyncEndCalledWithAnIAsyncResult")));
            }
            if (base.InnerChannel.EndTryReceiveRequest(result.InnerResult, out context))
            {
                requestContext = this.FinishReceiveRequest(context, result.TimeoutHelper.RemainingTime());
                return(true);
            }
            requestContext = null;
            return(false);
        }