Ejemplo n.º 1
0
 public TransportChannel(
     UniqueId connectionId,
     UniqueId channelId,
     IWritableChannel <ChannelMessage> output,
     IChannelHeaderFactory headerFactory)
 {
     ConnectionId            = connectionId;
     Id                      = channelId;
     _log                    = LogManager.GetLogger <TransportChannel>($"{connectionId}.{channelId}");
     _incomingMessageHandler = new TransportChannelHeaderHandler <Task, ChannelMessage>(HandleIncomingAsync, HandleIncomingAsync, HandleIncomingAsync);
     _sendProcessor          = new TransportChannelSendProcessor(connectionId, channelId, output, headerFactory);
     Completion              = TaskRunner.RunInBackground(ProcessAsync).LogCompletion(_log);
 }
Ejemplo n.º 2
0
 public TransportChannel(
     UniqueId connectionId,
     UniqueId channelId,
     IWriteOnlyChannel <ChannelMessage> output,
     IChannelHeaderFactory headerFactory)
 {
     ConnectionId            = connectionId;
     Id                      = channelId;
     _log                    = LogManager.GetLogger <TransportChannel>($"{connectionId}.{channelId}");
     _incomingMessageHandler = new TransportChannelHeaderHandler <Task, ChannelMessage>(HandleIncomingAsync, HandleIncomingAsync, HandleIncomingAsync);
     _sendProcessor          = new TransportChannelSendProcessor(connectionId, channelId, output, headerFactory);
     Completion              = Task.WhenAll(_sendProcessor.Completion, _receiveBuffer.In.Completion).LogCompletion(_log);
 }
 public TransportChannelSendProcessor(
     UniqueId connectionId,
     UniqueId channelId,
     IWritableChannel <ChannelMessage> @out,
     IChannelHeaderFactory headerFactory)
 {
     ChannelId      = channelId;
     _log           = LogManager.GetLogger <TransportChannelSendProcessor>($"{connectionId.ToString()}.{channelId.ToString()}");
     _headerFactory = headerFactory;
     _out           = @out;
     _buffer.Out.PropagateTerminationFrom(_out.Completion);
     Completion = ProcessAsync().LogCompletion(_log);
     Completion.PropagateCompletionToPromise(_initialized);
 }