public WrxCommandServer( IAsyncSimpleInputStream <byte> requestStream, IAsyncSimpleOutputStream <byte> responseStream, IAsyncWrxCommandHandler commandHandler, bool doNotDisposeRequestStream = false, bool doNotDisposeResponseStream = false) : this( new WrxPacketReader(requestStream, doNotDisposeRequestStream), new WrxPacketWriter(responseStream, doNotDisposeResponseStream), commandHandler, ArrayPool <byte> .Shared) { }
public WrxCommandServer( IPacketReader <WrxPacket> requestReader, IPacketWriter <WrxPacket> responseWriter, IAsyncWrxCommandHandler commandHandler, bool doNotDisposeRequestReader = false, bool doNotDisposeResponseWriter = false) : this( requestReader, responseWriter, commandHandler, ArrayPool <byte> .Shared, doNotDisposeRequestReader, doNotDisposeResponseWriter) { }
public WrxCommandServer( IPacketReader <WrxPacket> requestReader, IPacketWriter <WrxPacket> responseWriter, IAsyncWrxCommandHandler commandHandler, ArrayPool <byte> byteArrayPool, bool doNotDisposeRequestReader = false, bool doNotDisposeResponseWriter = false) { _requestReader = AsyncDisposableArg.Create(requestReader, doNotDisposeRequestReader); _responseWriter = AsyncDisposableArg.Create(responseWriter, doNotDisposeResponseWriter); _commandHandler = commandHandler; _byteArrayPool = byteArrayPool; _disposePacketCallback = state => { if (state is byte[] array) { _byteArrayPool.Return(array); } }; }