Moved ProviderCollectionTest.cs from System assembly to System.Configuration.
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Channels / DuplexSessionChannelBase.cs
1 // 
2 // DuplexSessionChannelBase.cs
3 // 
4 // Author:
5 //     Marcos Cobena (marcoscobena@gmail.com)
6 // 
7 // Copyright 2007 Marcos Cobena (http://www.youcannoteatbits.org/)
8 // 
9
10 using System;
11 using System.ServiceModel.Channels;
12
13 namespace System.ServiceModel.Channels
14 {
15         internal abstract class DuplexChannelBase : ChannelBase, IDuplexChannel
16         {
17                 ChannelFactoryBase channel_factory_base;
18                 ChannelListenerBase channel_listener_base;
19                 EndpointAddress local_address;
20                 EndpointAddress remote_address;
21                 Uri via;
22                 
23                 public DuplexChannelBase (ChannelFactoryBase factory) : base (factory)
24                 {
25                         channel_factory_base = factory;
26                 }
27                 
28                 public DuplexChannelBase (ChannelListenerBase listener) : base (listener)
29                 {
30                         channel_listener_base = listener;
31                 }
32
33                 public abstract EndpointAddress LocalAddress { get; }
34                 
35                 public abstract EndpointAddress RemoteAddress { get; }
36                 
37                 public abstract Uri Via { get; }
38                 
39                 public abstract IAsyncResult BeginSend (Message message, AsyncCallback callback, object state);
40                 
41                 public abstract IAsyncResult BeginSend (Message message, TimeSpan timeout, AsyncCallback callback, object state);
42                 
43                 public abstract void EndSend (IAsyncResult result);
44                 
45                 public abstract void Send (Message message);
46                 
47                 public abstract void Send (Message message, TimeSpan timeout);
48                 
49                 public abstract IAsyncResult BeginReceive (AsyncCallback callback, object state);
50                 
51                 public abstract IAsyncResult BeginReceive (TimeSpan timeout, AsyncCallback callback, object state);
52                 
53                 public abstract IAsyncResult BeginTryReceive (TimeSpan timeout, AsyncCallback callback, object state);
54                 
55                 public abstract IAsyncResult BeginWaitForMessage (TimeSpan timeout, AsyncCallback callback, object state);
56                 
57                 public abstract Message EndReceive (IAsyncResult result);
58                 
59                 public abstract bool EndTryReceive (IAsyncResult result, out Message message);
60                 
61                 public abstract bool EndWaitForMessage (IAsyncResult result);
62                 
63                 public abstract Message Receive ();
64                 
65                 public abstract Message Receive (TimeSpan timeout);
66                 
67                 public abstract bool TryReceive (TimeSpan timeout, out Message message);
68                 
69                 public abstract bool WaitForMessage (TimeSpan timeout);
70         }
71 }