e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
79 lines
3.4 KiB
C#
79 lines
3.4 KiB
C#
//------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------
|
|
|
|
namespace System.ServiceModel.Channels
|
|
{
|
|
delegate void BinderExceptionHandler(IReliableChannelBinder sender, Exception exception);
|
|
|
|
interface IReliableChannelBinder
|
|
{
|
|
bool CanSendAsynchronously { get; }
|
|
IChannel Channel { get; }
|
|
bool Connected { get; }
|
|
TimeSpan DefaultSendTimeout { get; }
|
|
bool HasSession { get; }
|
|
EndpointAddress LocalAddress { get; }
|
|
EndpointAddress RemoteAddress { get; }
|
|
CommunicationState State { get; }
|
|
|
|
event BinderExceptionHandler Faulted;
|
|
event BinderExceptionHandler OnException;
|
|
|
|
void Abort();
|
|
|
|
void Close(TimeSpan timeout);
|
|
void Close(TimeSpan timeout, MaskingMode maskingMode);
|
|
IAsyncResult BeginClose(TimeSpan timeout, AsyncCallback callback, object state);
|
|
IAsyncResult BeginClose(TimeSpan timeout, MaskingMode maskingMode, AsyncCallback callback, object state);
|
|
void EndClose(IAsyncResult result);
|
|
|
|
void Open(TimeSpan timeout);
|
|
IAsyncResult BeginOpen(TimeSpan timeout, AsyncCallback callback, object state);
|
|
void EndOpen(IAsyncResult result);
|
|
|
|
IAsyncResult BeginSend(Message message, TimeSpan timeout, MaskingMode maskingMode, AsyncCallback callback, object state);
|
|
IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state);
|
|
void EndSend(IAsyncResult result);
|
|
void Send(Message message, TimeSpan timeout);
|
|
void Send(Message message, TimeSpan timeout, MaskingMode maskingMode);
|
|
|
|
bool TryReceive(TimeSpan timeout, out RequestContext requestContext);
|
|
bool TryReceive(TimeSpan timeout, out RequestContext requestContext, MaskingMode maskingMode);
|
|
IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state);
|
|
IAsyncResult BeginTryReceive(TimeSpan timeout, MaskingMode maskingMode, AsyncCallback callback, object state);
|
|
bool EndTryReceive(IAsyncResult result, out RequestContext requestContext);
|
|
|
|
ISession GetInnerSession();
|
|
void HandleException(Exception e);
|
|
bool IsHandleable(Exception e);
|
|
void SetMaskingMode(RequestContext context, MaskingMode maskingMode);
|
|
RequestContext WrapRequestContext(RequestContext context);
|
|
}
|
|
|
|
interface IClientReliableChannelBinder : IReliableChannelBinder
|
|
{
|
|
Uri Via { get; }
|
|
event EventHandler ConnectionLost;
|
|
|
|
bool EnsureChannelForRequest();
|
|
|
|
IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state);
|
|
IAsyncResult BeginRequest(Message message, TimeSpan timeout, MaskingMode maskingMode, AsyncCallback callback, object state);
|
|
Message EndRequest(IAsyncResult result);
|
|
Message Request(Message message, TimeSpan timeout);
|
|
Message Request(Message message, TimeSpan timeout, MaskingMode maskingMode);
|
|
|
|
}
|
|
|
|
interface IServerReliableChannelBinder : IReliableChannelBinder
|
|
{
|
|
bool AddressResponse(Message request, Message response);
|
|
bool UseNewChannel(IChannel channel);
|
|
|
|
IAsyncResult BeginWaitForRequest(TimeSpan timeout, AsyncCallback callback, object state);
|
|
bool EndWaitForRequest(IAsyncResult result);
|
|
bool WaitForRequest(TimeSpan timeout);
|
|
}
|
|
}
|