public void Decode(IClient client, Stream stream) { var pipeStream = stream.ToPipeStream(); if (response == null) { response = new Response(); } if (response.Load(pipeStream) == LoadedState.Completed) { if (response.Chunked) { loadChunkedData(pipeStream); } else { if (response.Length == 0) { var item = response; response = null; Completed?.Invoke(Client, item); } else { if (response.Length == stream.Length) { var item = response; item.Stream = pipeStream; response = null; Completed?.Invoke(Client, item); } } } } }