IronRuby.Builtins.RubyBufferedStream.LoadBuffer C# (CSharp) Method

LoadBuffer() private method

private LoadBuffer ( int count ) : int
count int
return int
        private int LoadBuffer(int count) {
            Debug.Assert(_bufferCount + count <= (_buffer != null ? _buffer.Length : _defaultBufferSize));

            int bytesRead;
            if (_buffer == null) {
                Debug.Assert(_bufferCount == 0 && _bufferStart == 0);
                _buffer = new byte[_defaultBufferSize];
            } else if (_bufferStart + _bufferCount + count > _buffer.Length) {
                // shift left:
                Buffer.BlockCopy(_buffer, _bufferStart, _buffer, 0, _bufferCount);
                _bufferStart = 0;
            }

            bytesRead = _stream.Read(_buffer, _bufferCount, count);
            _bufferCount += bytesRead;
            return bytesRead;
        }