private static void CheckIndexBounds(int readerIndex, int writerIndex)
 {
     if (readerIndex < 0 || readerIndex > writerIndex)
     {
         ThrowHelper.ThrowIndexOutOfRangeException_ReaderIndex(readerIndex, writerIndex);
     }
 }
 private static void CheckMinReadableBounds(int minimumReadableBytes, int readerIndex, int writerIndex, AbstractByteBuffer buf)
 {
     if (CheckBounds && (readerIndex > writerIndex - minimumReadableBytes))
     {
         ThrowHelper.ThrowIndexOutOfRangeException_ReaderIndex(minimumReadableBytes, readerIndex, writerIndex, buf);
     }
 }
 void CheckReadableBytes0(int minimumReadableBytes)
 {
     this.EnsureAccessible();
     if (this.readerIndex > this.writerIndex - minimumReadableBytes)
     {
         ThrowHelper.ThrowIndexOutOfRangeException_ReaderIndex(minimumReadableBytes, this.readerIndex, this.writerIndex, this);
     }
 }
        public virtual IByteBuffer SetReaderIndex(int index)
        {
            if (index < 0 || index > this.writerIndex)
            {
                ThrowHelper.ThrowIndexOutOfRangeException_ReaderIndex(index, this.WriterIndex);
            }

            this.readerIndex = index;
            return(this);
        }
        public virtual void AdvanceReader(int count)
        {
            if (count < 0)
            {
                ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.count);
            }

            if (0u >= (uint)count)
            {
                return;
            }

            var readerIdx = _readerIndex + count;
            var writerIdx = _writerIndex;

            if (CheckBounds && readerIdx > writerIdx)
            {
                ThrowHelper.ThrowIndexOutOfRangeException_ReaderIndex(readerIdx, writerIdx);
            }
            _readerIndex = readerIdx;
        }