public Connection( PipeReader input, IOutputHandler outputHandler, IReceiver receiver, IRequestRouter <IHandlerDescriptor?> requestRouter, IResponseRouter responseRouter, RequestInvoker requestInvoker, ILoggerFactory loggerFactory, OnUnhandledExceptionHandler onUnhandledException, CreateResponseExceptionHandler?getException = null ) =>
public InputHandler( PipeReader pipeReader, IOutputHandler outputHandler, IReceiver receiver, IRequestRouter <IHandlerDescriptor?> requestRouter, IResponseRouter responseRouter, RequestInvoker requestInvoker, ILoggerFactory loggerFactory, OnUnhandledExceptionHandler unhandledInputProcessException, CreateResponseExceptionHandler?getException ) { _pipeReader = pipeReader; _outputHandler = outputHandler; _receiver = receiver; _requestRouter = requestRouter; _responseRouter = responseRouter; _requestInvoker = requestInvoker; _unhandledInputProcessException = unhandledInputProcessException; _getException = getException; _logger = loggerFactory.CreateLogger <InputHandler>(); _headersBuffer = new Memory <byte>(new byte[HeadersFinishedLength]); _contentLengthBuffer = new Memory <byte>(new byte[ContentLengthLength]); _contentLengthValueBuffer = new byte[20]; // Max string length of the long value _contentLengthValueMemory = new Memory <byte>(_contentLengthValueBuffer); // Max string length of the long value _stopProcessing = new CancellationTokenSource(); _disposable = new CompositeDisposable { Disposable.Create(() => _stopProcessing.Cancel()), _stopProcessing, _requestInvoker, }; _inputActive = new AsyncSubject <Unit>(); _inputQueue = new Subject <IObservable <Unit> >(); }