Ejemplo n.º 1
0
 public MultiplexingSocketProtocol(ConnectionContext connection, IMessageReader <TInbound> messageReader, IMessageWriter <TOutbound> messageWriter, IMessageIdGenerator messageIdGenerator, IMessageIdParser messageIdParser)
 {
     this.connection    = connection ?? throw new ArgumentNullException(nameof(connection));
     this.reader        = new ProtocolReader(this.connection.Transport.Input);
     this.writer        = new ProtocolWriter(this.connection.Transport.Output);
     this.wrappedReader = new WrappedMessageReader <TInbound>(messageIdParser, messageReader);
     this.wrappedWriter = new WrappedMessageWriter <TOutbound>(messageIdParser, messageWriter);
     this.sourcePool    = new ObjectPool <PooledValueTaskSource <MessageId> >(() => { return(new PooledValueTaskSource <MessageId>()); }, 100);
 }
 public WrappedMessageWriter(IMessageIdParser idParser, IMessageWriter <T> writer)
 {
     this.idParser = idParser ?? throw new ArgumentNullException(nameof(idParser));
     this.writer   = writer ?? throw new ArgumentNullException(nameof(writer));
 }
 public WrappedMessageReader(IMessageIdParser idParser, IMessageReader <T> reader)
 {
     this.idParser = idParser ?? throw new ArgumentNullException(nameof(idParser));
     this.reader   = reader ?? throw new ArgumentNullException(nameof(reader));
 }