| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //
- // DuplexSessionChannelBase.cs
- //
- // Author:
- // Marcos Cobena ([email protected])
- //
- // Copyright 2007 Marcos Cobena (http://www.youcannoteatbits.org/)
- //
- using System;
- using System.ServiceModel.Channels;
- namespace System.ServiceModel.Channels
- {
- internal abstract class DuplexChannelBase : ChannelBase, IDuplexChannel
- {
- ChannelFactoryBase channel_factory_base;
- ChannelListenerBase channel_listener_base;
- EndpointAddress local_address;
- EndpointAddress remote_address;
- Uri via;
-
- public DuplexChannelBase (ChannelFactoryBase factory, EndpointAddress remoteAddress, Uri via) : base (factory)
- {
- channel_factory_base = factory;
- remote_address = remoteAddress;
- this.via = via;
- }
-
- public DuplexChannelBase (ChannelListenerBase listener) : base (listener)
- {
- channel_listener_base = listener;
- }
- public abstract EndpointAddress LocalAddress { get; }
-
- public EndpointAddress RemoteAddress {
- get { return remote_address; }
- }
- public Uri Via {
- get { return via; }
- }
-
- public virtual IAsyncResult BeginSend (Message message, AsyncCallback callback, object state)
- {
- return BeginSend (message, this.DefaultSendTimeout, callback, state);
- }
-
- public abstract IAsyncResult BeginSend (Message message, TimeSpan timeout, AsyncCallback callback, object state);
-
- public abstract void EndSend (IAsyncResult result);
-
- public virtual void Send (Message message)
- {
- Send (message, this.DefaultSendTimeout);
- }
- public virtual void Send (Message message, TimeSpan timeout)
- {
- EndSend (BeginSend (message, timeout, null, null));
- }
- public virtual IAsyncResult BeginReceive (AsyncCallback callback, object state)
- {
- return BeginReceive (this.DefaultReceiveTimeout, callback, state);
- }
- public abstract IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
-
- public abstract IAsyncResult BeginTryReceive (TimeSpan timeout, AsyncCallback callback, object state);
-
- public abstract IAsyncResult BeginWaitForMessage (TimeSpan timeout, AsyncCallback callback, object state);
-
- public abstract Message EndReceive (IAsyncResult result);
-
- public abstract bool EndTryReceive (IAsyncResult result, out Message message);
-
- public abstract bool EndWaitForMessage (IAsyncResult result);
-
- public virtual Message Receive ()
- {
- return Receive (this.DefaultReceiveTimeout);
- }
- public virtual Message Receive (TimeSpan timeout)
- {
- return EndReceive (BeginReceive (timeout, null, null));
- }
-
- public virtual bool TryReceive (TimeSpan timeout, out Message message)
- {
- return EndTryReceive (BeginTryReceive (timeout, null, null), out message);
- }
- public virtual bool WaitForMessage (TimeSpan timeout)
- {
- return EndWaitForMessage (BeginWaitForMessage (timeout, null, null));
- }
- }
- }
|