Exemple #1
0
 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);
 }
Exemple #2
0
 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);
 }
Exemple #5
0
 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);
 }
Exemple #7
0
        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;
     }
 }
Exemple #9
0
 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);
 }