private IAsyncResult OnConnectionBeginSend(MessageAttemptInfo attemptInfo, TimeSpan timeout, bool maskUnhandledException, AsyncCallback callback, object state)
        {
            if (attemptInfo.RetryCount > this.settings.MaxRetryCount)
            {
                this.session.OnLocalFault(new CommunicationException(System.ServiceModel.SR.GetString("MaximumRetryCountExceeded"), this.maxRetryCountException), SequenceTerminatedFault.CreateMaxRetryCountExceededFault(this.session.OutputID), null);
                return(new CompletedAsyncResult(callback, state));
            }
            this.session.OnLocalActivity();
            this.AddAcknowledgementHeader(attemptInfo.Message, false);
            ReliableBinderRequestAsyncResult result = new ReliableBinderRequestAsyncResult(callback, state)
            {
                Binder             = this.binder,
                MessageAttemptInfo = attemptInfo,
                MaskingMode        = maskUnhandledException ? MaskingMode.Unhandled : MaskingMode.None
            };

            if (attemptInfo.RetryCount < this.settings.MaxRetryCount)
            {
                result.MaskingMode         |= MaskingMode.Handled;
                result.SaveHandledException = false;
            }
            else
            {
                result.SaveHandledException = true;
            }
            result.Begin(timeout);
            return(result);
        }
 protected override IAsyncResult OnConnectionBeginSendMessage(Message message, TimeSpan timeout, AsyncCallback callback, object state)
 {
     ReliableBinderRequestAsyncResult result = new ReliableBinderRequestAsyncResult(callback, state) {
         Binder = this.binder,
         MaskingMode = MaskingMode.Handled,
         Message = message
     };
     result.Begin(timeout);
     return result;
 }
        protected override IAsyncResult OnConnectionBeginSendMessage(Message message, TimeSpan timeout,
                                                                     AsyncCallback callback, object state)
        {
            ReliableBinderRequestAsyncResult requestResult = new ReliableBinderRequestAsyncResult(callback, state);

            requestResult.Binder      = this.binder;
            requestResult.MaskingMode = MaskingMode.Handled;
            requestResult.Message     = message;

            requestResult.Begin(timeout);
            return(requestResult);
        }
        IAsyncResult BeginSendAckRequestedMessage(TimeSpan timeout, MaskingMode maskingMode, AsyncCallback callback,
                                                  object state)
        {
            this.session.OnLocalActivity();
            ReliableBinderRequestAsyncResult requestResult = new ReliableBinderRequestAsyncResult(callback, state);

            requestResult.Binder      = this.binder;
            requestResult.MaskingMode = maskingMode;
            requestResult.Message     = this.CreateAckRequestedMessage();
            requestResult.Begin(timeout);

            return(requestResult);
        }
 protected override IAsyncResult OnConnectionBeginSend(MessageAttemptInfo attemptInfo, TimeSpan timeout, bool maskUnhandledException, AsyncCallback callback, object state)
 {
     ReliableBinderRequestAsyncResult result = new ReliableBinderRequestAsyncResult(callback, state) {
         Binder = this.binder,
         MessageAttemptInfo = attemptInfo,
         MaskingMode = maskUnhandledException ? MaskingMode.Unhandled : MaskingMode.None
     };
     if (attemptInfo.RetryCount < base.Settings.MaxRetryCount)
     {
         result.MaskingMode |= MaskingMode.Handled;
         result.SaveHandledException = false;
     }
     else
     {
         result.SaveHandledException = true;
     }
     result.Begin(timeout);
     return result;
 }
        protected override IAsyncResult OnConnectionBeginSend(MessageAttemptInfo attemptInfo, TimeSpan timeout, bool maskUnhandledException, AsyncCallback callback, object state)
        {
            ReliableBinderRequestAsyncResult result = new ReliableBinderRequestAsyncResult(callback, state)
            {
                Binder             = this.binder,
                MessageAttemptInfo = attemptInfo,
                MaskingMode        = maskUnhandledException ? MaskingMode.Unhandled : MaskingMode.None
            };

            if (attemptInfo.RetryCount < base.Settings.MaxRetryCount)
            {
                result.MaskingMode         |= MaskingMode.Handled;
                result.SaveHandledException = false;
            }
            else
            {
                result.SaveHandledException = true;
            }
            result.Begin(timeout);
            return(result);
        }