public MessagingSendProcessor( ITransmissionConnection connection, ITransportProtocolSerializer serializer) { Id = connection.Id; _log = LogManager.GetLogger <MessagingSendProcessor>(Id.ToString()); _serializer = serializer; Out = new PropagatingChannel <TransportMessage, IPooledBuffer>(3, connection.Out, SendAsync, Dispose); Out.Completion.LogCompletion(_log); }
public MessagingReceiveProcessor( ITransmissionConnection connection, ITransportProtocolDeserializer deserializer) { Id = connection.Id; _log = LogManager.GetLogger <MessagingReceiveProcessor>(Id.ToString()); _connection = connection.In; _deserializer = deserializer; In.Completion.LogCompletion(_log); _buffer.Out.PropagateCompletionFrom(ProcessAsync()); }
public MessagingReceiveProcessor( ITransmissionConnection connection, ITransportProtocolDeserializer deserializer) { Id = connection.Id; _log = LogManager.GetLogger <MessagingReceiveProcessor>(Id.ToString()); _connection = connection.In; _deserializer = deserializer; In = new ProducingChannel <TransportMessage>(3, ReceiveLoopAsync); In.Completion.LogCompletion(_log); }
public TransportSendProcessor( ITransmissionConnection connection, ITransportHeaderFactory transportHeaderFactory, ITransportProtocolSerializer serializer) { _sendProcessor = new MessagingSendProcessor(connection, serializer); _log = LogManager.GetLogger <TransportSendProcessor>(_sendProcessor.Id.ToString()); _transportHeaderFactory = transportHeaderFactory; _sendProcessor.Out.PropagateCompletionFrom(ProcessAsync()); Completion = _sendProcessor.Completion.LogCompletion(_log); }
public MessagingSendProcessor( ITransmissionConnection connection, ITransportProtocolSerializer serializer) { Id = connection.Id; _connection = connection; _log = LogManager.GetLogger <MessagingSendProcessor>(Id.ToString()); _serializer = serializer; _connection.Out.PropagateCompletionFrom(ProcessAsync()); Completion = _connection.Out.Completion.LogCompletion(_log); }
public TransportReceiveProcessor( ITransmissionConnection connection, ITransportProtocolDeserializer deserializer) { InstanceId = connection.Id; _log = LogManager.GetLogger <TransportReceiveProcessor>(InstanceId.ToString()); _receiveProcessor = new MessagingReceiveProcessor(connection, deserializer); _handler = new TransportHeaderHandler <Task, Maybe <IPooledBuffer> >( HandleConnetionHeaderAsync, HandleChannelHeaderAsync); _buffer.Out.PropagateCompletionFrom(ProcessAsync()); In.Completion.LogCompletion(_log); }
private async Task AcceptAsync(ITransmissionConnection c) { try { await _buffer.WriteAsync(_connectionFactory.Create(c), CancellationToken).ConfigureAwait(false); Log.Debug("New connection accepted"); } catch { await c.DisconnectAsync().IgnoreExceptions().ConfigureAwait(false); throw; } }
public ITransportConnection Create(ITransmissionConnection transmissionConnection) { try { var sender = new TransportSendProcessor(transmissionConnection, TransportHeaderPool.Instance, _serializer); var receiver = new TransportReceiveProcessor(transmissionConnection, _deserializer); var connection = new TransportConnection(sender, receiver, TransportHeaderPool.Instance); Log.Trace("New connection created: {0}", connection.Id); return(connection); } catch (Exception ex) { Log.Trace("Connection failed: {0}", ex.FormatTypeAndMessage()); transmissionConnection.Dispose(); throw; } }
public TransportSendProcessor( ITransmissionConnection connection, ITransportHeaderFactory transportHeaderFactory, ITransportProtocolSerializer serializer) { _sendProcessor = new MessagingSendProcessor(connection, serializer); _transportHeaderFactory = transportHeaderFactory; _log = LogManager.GetLogger <TransportSendProcessor>(_sendProcessor.Id.ToString()); Out = new PropagatingChannel <ChannelMessage, TransportMessage>( 3, _sendProcessor.Out, OpenConnectionAsync, SendAsync, CloseConnectionAsync, CloseConnectionAsync, Dispose); Out.Completion.LogCompletion(_log); }