DuplexSessionChannelBase.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //
  2. // DuplexSessionChannelBase.cs
  3. //
  4. // Author:
  5. // Marcos Cobena ([email protected])
  6. //
  7. // Copyright 2007 Marcos Cobena (http://www.youcannoteatbits.org/)
  8. //
  9. using System;
  10. using System.ServiceModel.Channels;
  11. namespace System.ServiceModel.Channels
  12. {
  13. internal abstract class DuplexChannelBase : ChannelBase, IDuplexChannel
  14. {
  15. ChannelFactoryBase channel_factory_base;
  16. ChannelListenerBase channel_listener_base;
  17. EndpointAddress local_address;
  18. EndpointAddress remote_address;
  19. Uri via;
  20. public DuplexChannelBase (ChannelFactoryBase factory) : base (factory)
  21. {
  22. channel_factory_base = factory;
  23. }
  24. public DuplexChannelBase (ChannelListenerBase listener) : base (listener)
  25. {
  26. channel_listener_base = listener;
  27. }
  28. public abstract EndpointAddress LocalAddress { get; }
  29. public abstract EndpointAddress RemoteAddress { get; }
  30. public abstract Uri Via { get; }
  31. public abstract IAsyncResult BeginSend (Message message, AsyncCallback callback, object state);
  32. public abstract IAsyncResult BeginSend (Message message, TimeSpan timeout, AsyncCallback callback, object state);
  33. public abstract void EndSend (IAsyncResult result);
  34. public abstract void Send (Message message);
  35. public abstract void Send (Message message, TimeSpan timeout);
  36. public abstract IAsyncResult BeginReceive (AsyncCallback callback, object state);
  37. public abstract IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
  38. public abstract IAsyncResult BeginTryReceive (TimeSpan timeout, AsyncCallback callback, object state);
  39. public abstract IAsyncResult BeginWaitForMessage (TimeSpan timeout, AsyncCallback callback, object state);
  40. public abstract Message EndReceive (IAsyncResult result);
  41. public abstract bool EndTryReceive (IAsyncResult result, out Message message);
  42. public abstract bool EndWaitForMessage (IAsyncResult result);
  43. public abstract Message Receive ();
  44. public abstract Message Receive (TimeSpan timeout);
  45. public abstract bool TryReceive (TimeSpan timeout, out Message message);
  46. public abstract bool WaitForMessage (TimeSpan timeout);
  47. }
  48. }