HttpMultipartParser.RebufferableBinaryReader.StreamData C# (CSharp) Method

StreamData() private method

Reads more data from the stream into the stream stack.
private StreamData ( ) : int
return int
        private int StreamData()
        {
            var buffer = new byte[bufferSize];
            int amountRead = stream.Read(buffer, 0, buffer.Length);

            // We need to check if our stream is using our encodings
            // BOM, if it is we need to jump it.
            int bomOffset = GetBomOffset(buffer);

            // Sometimes we'll get a buffer that's smaller then we expect, chop it down
            // for the reader:
            if (amountRead - bomOffset > 0)
            {
                if (amountRead != buffer.Length || bomOffset > 0)
                {
                    var smallBuffer = new byte[amountRead - bomOffset];
                    System.Buffer.BlockCopy(buffer, bomOffset, smallBuffer, 0, amountRead - bomOffset);
                    streamStack.Push(smallBuffer);
                }
                else
                {
                    streamStack.Push(buffer);
                }
            }

            return amountRead;
        }