private static void OnReadHeaderComplete(TransportAsyncCallbackArgs args) { AmqpTransportListener.TransportHandler userToken = (AmqpTransportListener.TransportHandler)args.UserToken; if (args.Exception != null) { userToken.parent.OnHandleTransportComplete(args); return; } ByteBuffer byteBuffer = new ByteBuffer(userToken.buffer, 0, (int)userToken.buffer.Length); try { userToken.OnProtocolHeader(byteBuffer); } catch (Exception exception1) { Exception exception = exception1; if (Fx.IsFatal(exception)) { throw; } MessagingClientEtwProvider.TraceClient <AmqpTransportListener.TransportHandler, Exception>((AmqpTransportListener.TransportHandler source, Exception ex) => MessagingClientEtwProvider.Provider.EventWriteAmqpLogError(source, "OnProtocolHeader", ex.Message), userToken, exception); args.Exception = exception; userToken.parent.OnHandleTransportComplete(args); } }
private static void OnWriteHeaderComplete(TransportAsyncCallbackArgs args) { AmqpTransportListener.TransportHandler userToken = (AmqpTransportListener.TransportHandler)args.UserToken; if (args.Exception != null) { userToken.parent.OnHandleTransportComplete(args); return; } try { IAsyncResult asyncResult = userToken.args.Transport.BeginOpen(userToken.timeoutHelper.RemainingTime(), AmqpTransportListener.TransportHandler.onTransportOpened, userToken); if (asyncResult.CompletedSynchronously) { userToken.HandleTransportOpened(asyncResult); } } catch (Exception exception) { args.Exception = exception; userToken.parent.OnHandleTransportComplete(args); } }
private static void OnTransportOpened(IAsyncResult result) { if (result.CompletedSynchronously) { return; } AmqpTransportListener.TransportHandler asyncState = (AmqpTransportListener.TransportHandler)result.AsyncState; try { asyncState.HandleTransportOpened(result); } catch (Exception exception1) { Exception exception = exception1; if (Fx.IsFatal(exception)) { throw; } MessagingClientEtwProvider.TraceClient <AmqpTransportListener.TransportHandler, Exception>((AmqpTransportListener.TransportHandler source, Exception ex) => MessagingClientEtwProvider.Provider.EventWriteAmqpLogError(source, "HandleTransportOpened", ex.Message), asyncState, exception); asyncState.args.Exception = exception; asyncState.parent.OnHandleTransportComplete(asyncState.args); } }
public static void SpawnHandler(AmqpTransportListener parent, TransportAsyncCallbackArgs args) { AmqpTransportListener.TransportHandler transportHandler = new AmqpTransportListener.TransportHandler(parent, args); ActionItem.Schedule(AmqpTransportListener.TransportHandler.startCallback, transportHandler); }