1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //-----------------------------------------------------------------------------
4 
5 namespace System.ServiceModel.Dispatcher
6 {
7     using System;
8     using System.ServiceModel.Channels;
9     using System.ServiceModel;
10 
11     interface IChannelBinder
12     {
13         IChannel Channel { get; }
14         bool HasSession { get; }
15         Uri ListenUri { get; }
16         EndpointAddress LocalAddress { get; }
17         EndpointAddress RemoteAddress { get; }
18 
Abort()19         void Abort();
CloseAfterFault(TimeSpan timeout)20         void CloseAfterFault(TimeSpan timeout);
21 
TryReceive(TimeSpan timeout, out RequestContext requestContext)22         bool TryReceive(TimeSpan timeout, out RequestContext requestContext);
BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state)23         IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state);
EndTryReceive(IAsyncResult result, out RequestContext requestContext)24         bool EndTryReceive(IAsyncResult result, out RequestContext requestContext);
25 
Send(Message message, TimeSpan timeout)26         void Send(Message message, TimeSpan timeout);
BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state)27         IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state);
EndSend(IAsyncResult result)28         void EndSend(IAsyncResult result);
29 
Request(Message message, TimeSpan timeout)30         Message Request(Message message, TimeSpan timeout);
BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state)31         IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state);
EndRequest(IAsyncResult result)32         Message EndRequest(IAsyncResult result);
33 
WaitForMessage(TimeSpan timeout)34         bool WaitForMessage(TimeSpan timeout);
BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)35         IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state);
EndWaitForMessage(IAsyncResult result)36         bool EndWaitForMessage(IAsyncResult result);
37 
CreateRequestContext(Message message)38         RequestContext CreateRequestContext(Message message);
39     }
40 }
41