コード例 #1
0
        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);
                        }
                    }
                }
            }
        }