protected override void EnqueueAndDispatch(IChannelListener listener, RequestContext request, Action dequeuedCallback, bool canDispatchOnThisThread) { SingletonChannelListener <IInputChannel, InputChannel, Message> listener2 = listener as SingletonChannelListener <IInputChannel, InputChannel, Message>; if (listener2 != null) { listener2.EnqueueAndDispatch(request.RequestMessage, dequeuedCallback, canDispatchOnThisThread); try { request.Close(); } catch (CommunicationException exception) { if (DiagnosticUtility.ShouldTraceInformation) { DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Information); } } catch (TimeoutException exception2) { if (DiagnosticUtility.ShouldTraceInformation) { DiagnosticUtility.ExceptionUtility.TraceHandledException(exception2, TraceEventType.Information); } } } SingletonChannelListener <IReplyChannel, ReplyChannel, RequestContext> listener3 = listener as SingletonChannelListener <IReplyChannel, ReplyChannel, RequestContext>; if (listener3 == null) { throw Fx.AssertAndThrow("ReplyChannelDemuxer.EnqueueAndDispatch (false)"); } listener3.EnqueueAndDispatch(request, dequeuedCallback, canDispatchOnThisThread); }
protected override void Dispatch(IChannelListener listener) { SingletonChannelListener <IInputChannel, InputChannel, Message> listener2 = listener as SingletonChannelListener <IInputChannel, InputChannel, Message>; if (listener2 != null) { listener2.Dispatch(); } else { SingletonChannelListener <IReplyChannel, ReplyChannel, RequestContext> listener3 = listener as SingletonChannelListener <IReplyChannel, ReplyChannel, RequestContext>; if (listener3 == null) { throw Fx.AssertAndThrow("ReplyChannelDemuxer.Dispatch (false)"); } listener3.Dispatch(); } }
protected override void EnqueueAndDispatch(IChannelListener listener, Exception exception, Action dequeuedCallback, bool canDispatchOnThisThread) { SingletonChannelListener <IInputChannel, InputChannel, Message> listener2 = listener as SingletonChannelListener <IInputChannel, InputChannel, Message>; if (listener2 != null) { listener2.EnqueueAndDispatch(exception, dequeuedCallback, canDispatchOnThisThread); } else { SingletonChannelListener <IReplyChannel, ReplyChannel, RequestContext> listener3 = listener as SingletonChannelListener <IReplyChannel, ReplyChannel, RequestContext>; if (listener3 == null) { throw Fx.AssertAndThrow("ReplyChannelDemuxer.EnqueueAndDispatch (false)"); } listener3.EnqueueAndDispatch(exception, dequeuedCallback, canDispatchOnThisThread); } }