protected override void OnOpen(TimeSpan timeout)
            {
                IRelayedOnewaySender relayedOnewaySender = this.connection;

                if (relayedOnewaySender != null)
                {
                    relayedOnewaySender.Open(timeout);
                }
            }
            protected override IAsyncResult OnBeginOpen(TimeSpan timeout, AsyncCallback callback, object state)
            {
                IRelayedOnewaySender relayedOnewaySender = this.connection;

                if (relayedOnewaySender == null)
                {
                    return(new CompletedAsyncResult(callback, state));
                }
                IRelayedOnewaySender relayedOnewaySender1 = relayedOnewaySender;
                IRelayedOnewaySender relayedOnewaySender2 = relayedOnewaySender;

                return(new DelegatingAsyncResult(new Func <TimeSpan, AsyncCallback, object, IAsyncResult>(relayedOnewaySender1.BeginOpen), new Action <IAsyncResult>(relayedOnewaySender2.EndOpen), timeout, callback, state));
            }
            protected override void OnAbort()
            {
                IRelayedOnewaySender relayedOnewaySender;

                lock (base.ThisLock)
                {
                    relayedOnewaySender = this.connection;
                    this.connection     = null;
                }
                if (relayedOnewaySender != null)
                {
                    relayedOnewaySender.Abort();
                }
            }
            protected override void OnClose(TimeSpan timeout)
            {
                TimeoutHelper        timeoutHelper       = new TimeoutHelper(timeout);
                IRelayedOnewaySender relayedOnewaySender = null;

                lock (base.ThisLock)
                {
                    relayedOnewaySender = this.connection;
                    this.connection     = null;
                }
                if (relayedOnewaySender != null)
                {
                    relayedOnewaySender.Close(timeoutHelper.RemainingTime());
                }
            }
 public RelayedOnewayOutputChannel(RelayedOnewayChannelFactory channelFactory, BindingContext context, RelayedOnewayTransportBindingElement transportBindingElement, EndpointAddress to, Uri via) : base(channelFactory)
 {
     this.to         = to;
     this.via        = via;
     this.connection = RelayedOnewayManager.CreateConnection(context, transportBindingElement, via);
 }