Class AbstractByteBuf

java.lang.Object
io.netty.buffer.ByteBuf
io.netty.buffer.AbstractByteBuf
All Implemented Interfaces:
ByteBufConvertible, ReferenceCounted, Comparable<ByteBuf>
Direct Known Subclasses:
AbstractDerivedByteBuf, AbstractReferenceCountedByteBuf

public abstract class AbstractByteBuf extends ByteBuf
A skeletal implementation of a buffer.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) static final boolean
     
    private static final boolean
     
    (package private) static final ResourceLeakDetector<ByteBuf>
     
    private static final String
     
    private static final InternalLogger
     
    private int
     
    private int
     
    private int
     
    private static final String
     
    private static final String
     
    (package private) int
     
    (package private) int
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    AbstractByteBuf(int maxCapacity)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract byte
    _getByte(int index)
     
    protected abstract int
    _getInt(int index)
     
    protected abstract int
    _getIntLE(int index)
     
    protected abstract long
    _getLong(int index)
     
    protected abstract long
    _getLongLE(int index)
     
    protected abstract short
    _getShort(int index)
     
    protected abstract short
    _getShortLE(int index)
     
    protected abstract int
    _getUnsignedMedium(int index)
     
    protected abstract int
     
    protected abstract void
    _setByte(int index, int value)
     
    protected abstract void
    _setInt(int index, int value)
     
    protected abstract void
    _setIntLE(int index, int value)
     
    protected abstract void
    _setLong(int index, long value)
     
    protected abstract void
    _setLongLE(int index, long value)
     
    protected abstract void
    _setMedium(int index, int value)
     
    protected abstract void
    _setMediumLE(int index, int value)
     
    protected abstract void
    _setShort(int index, int value)
     
    protected abstract void
    _setShortLE(int index, int value)
     
    protected final void
    adjustMarkers(int decrement)
     
    Returns a read-only version of this buffer.
    int
    bytesBefore(byte value)
    Locates the first occurrence of the specified value in this buffer.
    int
    bytesBefore(int length, byte value)
    Locates the first occurrence of the specified value in this buffer.
    int
    bytesBefore(int index, int length, byte value)
    Locates the first occurrence of the specified value in this buffer.
    protected final void
    checkDstIndex(int length, int dstIndex, int dstCapacity)
     
    protected final void
    checkDstIndex(int index, int length, int dstIndex, int dstCapacity)
     
    protected final void
    checkIndex(int index)
     
    protected final void
    checkIndex(int index, int fieldLength)
     
    (package private) final void
    checkIndex0(int index, int fieldLength)
     
    private static void
    checkIndexBounds(int readerIndex, int writerIndex, int capacity)
     
    protected final void
    checkNewCapacity(int newCapacity)
     
    private static void
    checkRangeBounds(String indexName, int index, int fieldLength, int capacity)
     
    private static void
    checkReadableBounds(ByteBuf src, int length)
     
    protected final void
    checkReadableBytes(int minimumReadableBytes)
    Throws an IndexOutOfBoundsException if the current readable bytes of this buffer is less than the specified value.
    private void
    checkReadableBytes0(int minimumReadableBytes)
     
    protected final void
    checkSrcIndex(int index, int length, int srcIndex, int srcCapacity)
     
    Sets the readerIndex and writerIndex of this buffer to 0.
    int
    Compares the content of the specified buffer to the content of this buffer.
    Returns a copy of this buffer's readable bytes.
    (package private) final void
     
    Discards the bytes between the 0th index and readerIndex.
    Similar to ByteBuf.discardReadBytes() except that this method might discard some, all, or none of read bytes depending on its internal implementation to reduce overall memory bandwidth consumption at the cost of potentially additional memory consumption.
    Returns a buffer which shares the whole region of this buffer.
    protected final void
    Should be called by every method that tries to access the buffers content to check if the buffer was released before.
    ensureWritable(int minWritableBytes)
    Expands the buffer ByteBuf.capacity() to make sure the number of writable bytes is equal to or greater than the specified value.
    int
    ensureWritable(int minWritableBytes, boolean force)
    Expands the buffer ByteBuf.capacity() to make sure the number of writable bytes is equal to or greater than the specified value.
    (package private) final void
    ensureWritable0(int minWritableBytes)
     
    boolean
    Determines if the content of the specified buffer is identical to the content of this array.
    int
    forEachByte(int index, int length, ByteProcessor processor)
    Iterates over the specified area of this buffer with the specified processor in ascending order.
    int
    Iterates over the readable bytes of this buffer with the specified processor in ascending order.
    (package private) int
    forEachByteAsc0(int start, int end, ByteProcessor processor)
     
    int
    forEachByteDesc(int index, int length, ByteProcessor processor)
    Iterates over the specified area of this buffer with the specified processor in descending order.
    int
    Iterates over the readable bytes of this buffer with the specified processor in descending order.
    (package private) int
    forEachByteDesc0(int rStart, int rEnd, ByteProcessor processor)
     
    boolean
    getBoolean(int index)
    Gets a boolean at the specified absolute (@code index) in this buffer.
    byte
    getByte(int index)
    Gets a byte at the specified absolute index in this buffer.
    getBytes(int index, byte[] dst)
    Transfers this buffer's data to the specified destination starting at the specified absolute index.
    getBytes(int index, ByteBuf dst)
    Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination becomes non-writable.
    getBytes(int index, ByteBuf dst, int length)
    Transfers this buffer's data to the specified destination starting at the specified absolute index.
    char
    getChar(int index)
    Gets a 2-byte UTF-16 character at the specified absolute index in this buffer.
    getCharSequence(int index, int length, Charset charset)
    Gets a CharSequence with the given length at the given index.
    double
    getDouble(int index)
    Gets a 64-bit floating point number at the specified absolute index in this buffer.
    float
    getFloat(int index)
    Gets a 32-bit floating point number at the specified absolute index in this buffer.
    int
    getInt(int index)
    Gets a 32-bit integer at the specified absolute index in this buffer.
    int
    getIntLE(int index)
    Gets a 32-bit integer at the specified absolute index in this buffer with Little Endian Byte Order.
    long
    getLong(int index)
    Gets a 64-bit long integer at the specified absolute index in this buffer.
    long
    getLongLE(int index)
    Gets a 64-bit long integer at the specified absolute index in this buffer in Little Endian Byte Order.
    int
    getMedium(int index)
    Gets a 24-bit medium integer at the specified absolute index in this buffer.
    int
    getMediumLE(int index)
    Gets a 24-bit medium integer at the specified absolute index in this buffer in the Little Endian Byte Order.
    short
    getShort(int index)
    Gets a 16-bit short integer at the specified absolute index in this buffer.
    short
    getShortLE(int index)
    Gets a 16-bit short integer at the specified absolute index in this buffer in Little Endian Byte Order.
    short
    getUnsignedByte(int index)
    Gets an unsigned byte at the specified absolute index in this buffer.
    long
    getUnsignedInt(int index)
    Gets an unsigned 32-bit integer at the specified absolute index in this buffer.
    long
    getUnsignedIntLE(int index)
    Gets an unsigned 32-bit integer at the specified absolute index in this buffer in Little Endian Byte Order.
    int
    getUnsignedMedium(int index)
    Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer.
    int
    Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer in Little Endian Byte Order.
    int
    getUnsignedShort(int index)
    Gets an unsigned 16-bit short integer at the specified absolute index in this buffer.
    int
    getUnsignedShortLE(int index)
    Gets an unsigned 16-bit short integer at the specified absolute index in this buffer in Little Endian Byte Order.
    int
    Returns a hash code which was calculated from the content of this buffer.
    int
    indexOf(int fromIndex, int toIndex, byte value)
    Locates the first occurrence of the specified value in this buffer.
    boolean
    Returns true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
    boolean
    isReadable(int numBytes)
    Returns true if and only if this buffer contains equal to or more than the specified number of elements.
    boolean
    Returns true if and only if this buffer is read-only.
    boolean
    Returns true if and only if (this.capacity - this.writerIndex) is greater than 0.
    boolean
    isWritable(int numBytes)
    Returns true if and only if this buffer has enough room to allow writing the specified number of elements.
    Marks the current readerIndex in this buffer.
    Marks the current writerIndex in this buffer.
    int
    Returns the maximum allowed capacity of this buffer.
    protected final void
    maxCapacity(int maxCapacity)
     
    int
    Returns the maximum possible number of writable bytes, which is equal to (this.maxCapacity - this.writerIndex).
    protected SwappedByteBuf
    Creates a new SwappedByteBuf for this ByteBuf instance.
    Exposes this buffer's readable bytes as an NIO ByteBuffer.
    Exposes this buffer's readable bytes as an NIO ByteBuffer's.
    order(ByteOrder endianness)
    Returns a buffer with the specified endianness which shares the whole region, indexes, and marks of this buffer.
    int
    Returns the number of readable bytes which is equal to (this.writerIndex - this.readerIndex).
    boolean
    Gets a boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
    byte
    Gets a byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
    readBytes(byte[] dst)
    Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= dst.length).
    readBytes(byte[] dst, int dstIndex, int length)
    Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
    readBytes(int length)
    Transfers this buffer's data to a newly created buffer starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
    Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination becomes non-writable, and increases the readerIndex by the number of the transferred bytes.
    readBytes(ByteBuf dst, int length)
    Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
    readBytes(ByteBuf dst, int dstIndex, int length)
    Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
    readBytes(OutputStream out, int length)
    Transfers this buffer's data to the specified stream starting at the current readerIndex.
    Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination's position reaches its limit, and increases the readerIndex by the number of the transferred bytes.
    int
    readBytes(FileChannel out, long position, int length)
    Transfers this buffer's data starting at the current readerIndex to the specified channel starting at the given file position.
    int
    readBytes(GatheringByteChannel out, int length)
    Transfers this buffer's data to the specified stream starting at the current readerIndex.
    char
    Gets a 2-byte UTF-16 character at the current readerIndex and increases the readerIndex by 2 in this buffer.
    readCharSequence(int length, Charset charset)
    Gets a CharSequence with the given length at the current readerIndex and increases the readerIndex by the given length.
    double
    Gets a 64-bit floating point number at the current readerIndex and increases the readerIndex by 8 in this buffer.
    int
    Returns the readerIndex of this buffer.
    readerIndex(int readerIndex)
    Sets the readerIndex of this buffer.
    float
    Gets a 32-bit floating point number at the current readerIndex and increases the readerIndex by 4 in this buffer.
    int
    Gets a 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
    int
    Gets a 32-bit integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 4 in this buffer.
    long
    Gets a 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
    long
    Gets a 64-bit integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 8 in this buffer.
    int
    Gets a 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
    int
    Gets a 24-bit medium integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 3 in this buffer.
    readRetainedSlice(int length)
    Returns a new retained slice of this buffer's sub-region starting at the current readerIndex and increases the readerIndex by the size of the new slice (= length).
    short
    Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
    short
    Gets a 16-bit short integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 2 in this buffer.
    readSlice(int length)
    Returns a new slice of this buffer's sub-region starting at the current readerIndex and increases the readerIndex by the size of the new slice (= length).
    short
    Gets an unsigned byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
    long
    Gets an unsigned 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
    long
    Gets an unsigned 32-bit integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 4 in this buffer.
    int
    Gets an unsigned 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
    int
    Gets an unsigned 24-bit medium integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 3 in this buffer.
    int
    Gets an unsigned 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
    int
    Gets an unsigned 16-bit short integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 2 in this buffer.
    Repositions the current readerIndex to the marked readerIndex in this buffer.
    Repositions the current writerIndex to the marked writerIndex in this buffer.
    Returns a retained buffer which shares the whole region of this buffer.
    Returns a retained slice of this buffer's readable bytes.
    retainedSlice(int index, int length)
    Returns a retained slice of this buffer's sub-region.
    setBoolean(int index, boolean value)
    Sets the specified boolean at the specified absolute index in this buffer.
    setByte(int index, int value)
    Sets the specified byte at the specified absolute index in this buffer.
    setBytes(int index, byte[] src)
    Transfers the specified source array's data to this buffer starting at the specified absolute index.
    setBytes(int index, ByteBuf src)
    Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer becomes unreadable.
    setBytes(int index, ByteBuf src, int length)
    Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
    setChar(int index, int value)
    Sets the specified 2-byte UTF-16 character at the specified absolute index in this buffer.
    int
    setCharSequence(int index, CharSequence sequence, Charset charset)
    Writes the specified CharSequence at the given index.
    private int
    setCharSequence0(int index, CharSequence sequence, Charset charset, boolean expand)
     
    setDouble(int index, double value)
    Sets the specified 64-bit floating-point number at the specified absolute index in this buffer.
    setFloat(int index, float value)
    Sets the specified 32-bit floating-point number at the specified absolute index in this buffer.
    setIndex(int readerIndex, int writerIndex)
    Sets the readerIndex and writerIndex of this buffer in one shot.
    (package private) final void
    setIndex0(int readerIndex, int writerIndex)
     
    setInt(int index, int value)
    Sets the specified 32-bit integer at the specified absolute index in this buffer.
    setIntLE(int index, int value)
    Sets the specified 32-bit integer at the specified absolute index in this buffer with Little Endian byte order .
    setLong(int index, long value)
    Sets the specified 64-bit long integer at the specified absolute index in this buffer.
    setLongLE(int index, long value)
    Sets the specified 64-bit long integer at the specified absolute index in this buffer in Little Endian Byte Order.
    setMedium(int index, int value)
    Sets the specified 24-bit medium integer at the specified absolute index in this buffer.
    setMediumLE(int index, int value)
    Sets the specified 24-bit medium integer at the specified absolute index in this buffer in the Little Endian Byte Order.
    setShort(int index, int value)
    Sets the specified 16-bit short integer at the specified absolute index in this buffer.
    setShortLE(int index, int value)
    Sets the specified 16-bit short integer at the specified absolute index in this buffer with the Little Endian Byte Order.
    setZero(int index, int length)
    Fills this buffer with NUL (0x00) starting at the specified absolute index.
    skipBytes(int length)
    Increases the current readerIndex by the specified length in this buffer.
    Returns a slice of this buffer's readable bytes.
    slice(int index, int length)
    Returns a slice of this buffer's sub-region.
    Returns the string representation of this buffer.
    toString(int index, int length, Charset charset)
    Decodes this buffer's sub-region into a string with the specified character set.
    toString(Charset charset)
    Decodes this buffer's readable bytes into a string with the specified character set name.
    protected final void
    trimIndicesToCapacity(int newCapacity)
     
    int
    Returns the number of writable bytes which is equal to (this.capacity - this.writerIndex).
    writeBoolean(boolean value)
    Sets the specified boolean at the current writerIndex and increases the writerIndex by 1 in this buffer.
    writeByte(int value)
    Sets the specified byte at the current writerIndex and increases the writerIndex by 1 in this buffer.
    writeBytes(byte[] src)
    Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= src.length).
    writeBytes(byte[] src, int srcIndex, int length)
    Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
    Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer becomes unreadable, and increases the writerIndex by the number of the transferred bytes.
    writeBytes(ByteBuf src, int length)
    Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
    writeBytes(ByteBuf src, int srcIndex, int length)
    Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
    int
    writeBytes(InputStream in, int length)
    Transfers the content of the specified stream to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
    Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer's position reaches its limit, and increases the writerIndex by the number of the transferred bytes.
    int
    writeBytes(FileChannel in, long position, int length)
    Transfers the content of the specified channel starting at the given file position to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
    int
    Transfers the content of the specified channel to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
    writeChar(int value)
    Sets the specified 2-byte UTF-16 character at the current writerIndex and increases the writerIndex by 2 in this buffer.
    int
    Writes the specified CharSequence at the current writerIndex and increases the writerIndex by the written bytes.
    writeDouble(double value)
    Sets the specified 64-bit floating point number at the current writerIndex and increases the writerIndex by 8 in this buffer.
    writeFloat(float value)
    Sets the specified 32-bit floating point number at the current writerIndex and increases the writerIndex by 4 in this buffer.
    writeInt(int value)
    Sets the specified 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
    writeIntLE(int value)
    Sets the specified 32-bit integer at the current writerIndex in the Little Endian Byte Order and increases the writerIndex by 4 in this buffer.
    writeLong(long value)
    Sets the specified 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
    writeLongLE(long value)
    Sets the specified 64-bit long integer at the current writerIndex in the Little Endian Byte Order and increases the writerIndex by 8 in this buffer.
    writeMedium(int value)
    Sets the specified 24-bit medium integer at the current writerIndex and increases the writerIndex by 3 in this buffer.
    writeMediumLE(int value)
    Sets the specified 24-bit medium integer at the current writerIndex in the Little Endian Byte Order and increases the writerIndex by 3 in this buffer.
    int
    Returns the writerIndex of this buffer.
    writerIndex(int writerIndex)
    Sets the writerIndex of this buffer.
    writeShort(int value)
    Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer.
    writeShortLE(int value)
    Sets the specified 16-bit short integer in the Little Endian Byte Order at the current writerIndex and increases the writerIndex by 2 in this buffer.
    writeZero(int length)
    Fills this buffer with NUL (0x00) starting at the current writerIndex and increases the writerIndex by the specified length.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface io.netty.util.ReferenceCounted

    refCnt, release, release
  • Field Details

    • logger

      private static final InternalLogger logger
    • LEGACY_PROP_CHECK_ACCESSIBLE

      private static final String LEGACY_PROP_CHECK_ACCESSIBLE
      See Also:
    • PROP_CHECK_ACCESSIBLE

      private static final String PROP_CHECK_ACCESSIBLE
      See Also:
    • checkAccessible

      static final boolean checkAccessible
    • PROP_CHECK_BOUNDS

      private static final String PROP_CHECK_BOUNDS
      See Also:
    • checkBounds

      private static final boolean checkBounds
    • leakDetector

      static final ResourceLeakDetector<ByteBuf> leakDetector
    • readerIndex

      int readerIndex
    • writerIndex

      int writerIndex
    • markedReaderIndex

      private int markedReaderIndex
    • markedWriterIndex

      private int markedWriterIndex
    • maxCapacity

      private int maxCapacity
  • Constructor Details

    • AbstractByteBuf

      protected AbstractByteBuf(int maxCapacity)
  • Method Details

    • isReadOnly

      public boolean isReadOnly()
      Description copied from class: ByteBuf
      Returns true if and only if this buffer is read-only.
      Specified by:
      isReadOnly in class ByteBuf
    • asReadOnly

      public ByteBuf asReadOnly()
      Description copied from class: ByteBuf
      Returns a read-only version of this buffer.
      Specified by:
      asReadOnly in class ByteBuf
    • maxCapacity

      public int maxCapacity()
      Description copied from class: ByteBuf
      Returns the maximum allowed capacity of this buffer. This value provides an upper bound on ByteBuf.capacity().
      Specified by:
      maxCapacity in class ByteBuf
    • maxCapacity

      protected final void maxCapacity(int maxCapacity)
    • readerIndex

      public int readerIndex()
      Description copied from class: ByteBuf
      Returns the readerIndex of this buffer.
      Specified by:
      readerIndex in class ByteBuf
    • checkIndexBounds

      private static void checkIndexBounds(int readerIndex, int writerIndex, int capacity)
    • readerIndex

      public ByteBuf readerIndex(int readerIndex)
      Description copied from class: ByteBuf
      Sets the readerIndex of this buffer.
      Specified by:
      readerIndex in class ByteBuf
    • writerIndex

      public int writerIndex()
      Description copied from class: ByteBuf
      Returns the writerIndex of this buffer.
      Specified by:
      writerIndex in class ByteBuf
    • writerIndex

      public ByteBuf writerIndex(int writerIndex)
      Description copied from class: ByteBuf
      Sets the writerIndex of this buffer.
      Specified by:
      writerIndex in class ByteBuf
    • setIndex

      public ByteBuf setIndex(int readerIndex, int writerIndex)
      Description copied from class: ByteBuf
      Sets the readerIndex and writerIndex of this buffer in one shot. This method is useful when you have to worry about the invocation order of ByteBuf.readerIndex(int) and ByteBuf.writerIndex(int) methods. For example, the following code will fail:
       // Create a buffer whose readerIndex, writerIndex and capacity are
       // 0, 0 and 8 respectively.
       ByteBuf buf = Unpooled.buffer(8);
      
       // IndexOutOfBoundsException is thrown because the specified
       // readerIndex (2) cannot be greater than the current writerIndex (0).
       buf.readerIndex(2);
       buf.writerIndex(4);
       
      The following code will also fail:
       // Create a buffer whose readerIndex, writerIndex and capacity are
       // 0, 8 and 8 respectively.
       ByteBuf buf = Unpooled.wrappedBuffer(new byte[8]);
      
       // readerIndex becomes 8.
       buf.readLong();
      
       // IndexOutOfBoundsException is thrown because the specified
       // writerIndex (4) cannot be less than the current readerIndex (8).
       buf.writerIndex(4);
       buf.readerIndex(2);
       
      By contrast, this method guarantees that it never throws an IndexOutOfBoundsException as long as the specified indexes meet basic constraints, regardless what the current index values of the buffer are:
       // No matter what the current state of the buffer is, the following
       // call always succeeds as long as the capacity of the buffer is not
       // less than 4.
       buf.setIndex(2, 4);
       
      Specified by:
      setIndex in class ByteBuf
    • clear

      public ByteBuf clear()
      Description copied from class: ByteBuf
      Sets the readerIndex and writerIndex of this buffer to 0. This method is identical to setIndex(0, 0).

      Please note that the behavior of this method is different from that of NIO buffer, which sets the limit to the capacity of the buffer.

      Specified by:
      clear in class ByteBuf
    • isReadable

      public boolean isReadable()
      Description copied from class: ByteBuf
      Returns true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
      Specified by:
      isReadable in class ByteBuf
    • isReadable

      public boolean isReadable(int numBytes)
      Description copied from class: ByteBuf
      Returns true if and only if this buffer contains equal to or more than the specified number of elements.
      Specified by:
      isReadable in class ByteBuf
    • isWritable

      public boolean isWritable()
      Description copied from class: ByteBuf
      Returns true if and only if (this.capacity - this.writerIndex) is greater than 0.
      Specified by:
      isWritable in class ByteBuf
    • isWritable

      public boolean isWritable(int numBytes)
      Description copied from class: ByteBuf
      Returns true if and only if this buffer has enough room to allow writing the specified number of elements.
      Specified by:
      isWritable in class ByteBuf
    • readableBytes

      public int readableBytes()
      Description copied from class: ByteBuf
      Returns the number of readable bytes which is equal to (this.writerIndex - this.readerIndex).
      Specified by:
      readableBytes in class ByteBuf
    • writableBytes

      public int writableBytes()
      Description copied from class: ByteBuf
      Returns the number of writable bytes which is equal to (this.capacity - this.writerIndex).
      Specified by:
      writableBytes in class ByteBuf
    • maxWritableBytes

      public int maxWritableBytes()
      Description copied from class: ByteBuf
      Returns the maximum possible number of writable bytes, which is equal to (this.maxCapacity - this.writerIndex).
      Specified by:
      maxWritableBytes in class ByteBuf
    • markReaderIndex

      public ByteBuf markReaderIndex()
      Description copied from class: ByteBuf
      Marks the current readerIndex in this buffer. You can reposition the current readerIndex to the marked readerIndex by calling ByteBuf.resetReaderIndex(). The initial value of the marked readerIndex is 0.
      Specified by:
      markReaderIndex in class ByteBuf
    • resetReaderIndex

      public ByteBuf resetReaderIndex()
      Description copied from class: ByteBuf
      Repositions the current readerIndex to the marked readerIndex in this buffer.
      Specified by:
      resetReaderIndex in class ByteBuf
    • markWriterIndex

      public ByteBuf markWriterIndex()
      Description copied from class: ByteBuf
      Marks the current writerIndex in this buffer. You can reposition the current writerIndex to the marked writerIndex by calling ByteBuf.resetWriterIndex(). The initial value of the marked writerIndex is 0.
      Specified by:
      markWriterIndex in class ByteBuf
    • resetWriterIndex

      public ByteBuf resetWriterIndex()
      Description copied from class: ByteBuf
      Repositions the current writerIndex to the marked writerIndex in this buffer.
      Specified by:
      resetWriterIndex in class ByteBuf
    • discardReadBytes

      public ByteBuf discardReadBytes()
      Description copied from class: ByteBuf
      Discards the bytes between the 0th index and readerIndex. It moves the bytes between readerIndex and writerIndex to the 0th index, and sets readerIndex and writerIndex to 0 and oldWriterIndex - oldReaderIndex respectively.

      Please refer to the class documentation for more detailed explanation.

      Specified by:
      discardReadBytes in class ByteBuf
    • discardSomeReadBytes

      public ByteBuf discardSomeReadBytes()
      Description copied from class: ByteBuf
      Similar to ByteBuf.discardReadBytes() except that this method might discard some, all, or none of read bytes depending on its internal implementation to reduce overall memory bandwidth consumption at the cost of potentially additional memory consumption.
      Specified by:
      discardSomeReadBytes in class ByteBuf
    • adjustMarkers

      protected final void adjustMarkers(int decrement)
    • trimIndicesToCapacity

      protected final void trimIndicesToCapacity(int newCapacity)
    • ensureWritable

      public ByteBuf ensureWritable(int minWritableBytes)
      Description copied from class: ByteBuf
      Expands the buffer ByteBuf.capacity() to make sure the number of writable bytes is equal to or greater than the specified value. If there are enough writable bytes in this buffer, this method returns with no side effect.
      Specified by:
      ensureWritable in class ByteBuf
      Parameters:
      minWritableBytes - the expected minimum number of writable bytes
      See Also:
    • ensureWritable0

      final void ensureWritable0(int minWritableBytes)
    • ensureWritable

      public int ensureWritable(int minWritableBytes, boolean force)
      Description copied from class: ByteBuf
      Expands the buffer ByteBuf.capacity() to make sure the number of writable bytes is equal to or greater than the specified value. Unlike ByteBuf.ensureWritable(int), this method returns a status code.
      Specified by:
      ensureWritable in class ByteBuf
      Parameters:
      minWritableBytes - the expected minimum number of writable bytes
      force - When ByteBuf.writerIndex() + minWritableBytes > ByteBuf.maxCapacity():
      • true - the capacity of the buffer is expanded to ByteBuf.maxCapacity()
      • false - the capacity of the buffer is unchanged
      Returns:
      0 if the buffer has enough writable bytes, and its capacity is unchanged. 1 if the buffer does not have enough bytes, and its capacity is unchanged. 2 if the buffer has enough writable bytes, and its capacity has been increased. 3 if the buffer does not have enough bytes, but its capacity has been increased to its maximum.
    • order

      public ByteBuf order(ByteOrder endianness)
      Description copied from class: ByteBuf
      Returns a buffer with the specified endianness which shares the whole region, indexes, and marks of this buffer. Modifying the content, the indexes, or the marks of the returned buffer or this buffer affects each other's content, indexes, and marks. If the specified endianness is identical to this buffer's byte order, this method can return this. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      order in class ByteBuf
    • newSwappedByteBuf

      protected SwappedByteBuf newSwappedByteBuf()
      Creates a new SwappedByteBuf for this ByteBuf instance.
    • getByte

      public byte getByte(int index)
      Description copied from class: ByteBuf
      Gets a byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getByte in class ByteBuf
    • _getByte

      protected abstract byte _getByte(int index)
    • getBoolean

      public boolean getBoolean(int index)
      Description copied from class: ByteBuf
      Gets a boolean at the specified absolute (@code index) in this buffer. This method does not modify the readerIndex or writerIndex of this buffer.
      Specified by:
      getBoolean in class ByteBuf
    • getUnsignedByte

      public short getUnsignedByte(int index)
      Description copied from class: ByteBuf
      Gets an unsigned byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getUnsignedByte in class ByteBuf
    • getShort

      public short getShort(int index)
      Description copied from class: ByteBuf
      Gets a 16-bit short integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getShort in class ByteBuf
    • _getShort

      protected abstract short _getShort(int index)
    • getShortLE

      public short getShortLE(int index)
      Description copied from class: ByteBuf
      Gets a 16-bit short integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getShortLE in class ByteBuf
    • _getShortLE

      protected abstract short _getShortLE(int index)
    • getUnsignedShort

      public int getUnsignedShort(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 16-bit short integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getUnsignedShort in class ByteBuf
    • getUnsignedShortLE

      public int getUnsignedShortLE(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 16-bit short integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getUnsignedShortLE in class ByteBuf
    • getUnsignedMedium

      public int getUnsignedMedium(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getUnsignedMedium in class ByteBuf
    • _getUnsignedMedium

      protected abstract int _getUnsignedMedium(int index)
    • getUnsignedMediumLE

      public int getUnsignedMediumLE(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 24-bit medium integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getUnsignedMediumLE in class ByteBuf
    • _getUnsignedMediumLE

      protected abstract int _getUnsignedMediumLE(int index)
    • getMedium

      public int getMedium(int index)
      Description copied from class: ByteBuf
      Gets a 24-bit medium integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getMedium in class ByteBuf
    • getMediumLE

      public int getMediumLE(int index)
      Description copied from class: ByteBuf
      Gets a 24-bit medium integer at the specified absolute index in this buffer in the Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getMediumLE in class ByteBuf
    • getInt

      public int getInt(int index)
      Description copied from class: ByteBuf
      Gets a 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getInt in class ByteBuf
    • _getInt

      protected abstract int _getInt(int index)
    • getIntLE

      public int getIntLE(int index)
      Description copied from class: ByteBuf
      Gets a 32-bit integer at the specified absolute index in this buffer with Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getIntLE in class ByteBuf
    • _getIntLE

      protected abstract int _getIntLE(int index)
    • getUnsignedInt

      public long getUnsignedInt(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getUnsignedInt in class ByteBuf
    • getUnsignedIntLE

      public long getUnsignedIntLE(int index)
      Description copied from class: ByteBuf
      Gets an unsigned 32-bit integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getUnsignedIntLE in class ByteBuf
    • getLong

      public long getLong(int index)
      Description copied from class: ByteBuf
      Gets a 64-bit long integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getLong in class ByteBuf
    • _getLong

      protected abstract long _getLong(int index)
    • getLongLE

      public long getLongLE(int index)
      Description copied from class: ByteBuf
      Gets a 64-bit long integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getLongLE in class ByteBuf
    • _getLongLE

      protected abstract long _getLongLE(int index)
    • getChar

      public char getChar(int index)
      Description copied from class: ByteBuf
      Gets a 2-byte UTF-16 character at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getChar in class ByteBuf
    • getFloat

      public float getFloat(int index)
      Description copied from class: ByteBuf
      Gets a 32-bit floating point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getFloat in class ByteBuf
    • getDouble

      public double getDouble(int index)
      Description copied from class: ByteBuf
      Gets a 64-bit floating point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      getDouble in class ByteBuf
    • getBytes

      public ByteBuf getBytes(int index, byte[] dst)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer
      Specified by:
      getBytes in class ByteBuf
    • getBytes

      public ByteBuf getBytes(int index, ByteBuf dst)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination becomes non-writable. This method is basically same with ByteBuf.getBytes(int, ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while ByteBuf.getBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
      Specified by:
      getBytes in class ByteBuf
    • getBytes

      public ByteBuf getBytes(int index, ByteBuf dst, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the specified absolute index. This method is basically same with ByteBuf.getBytes(int, ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while ByteBuf.getBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
      Specified by:
      getBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
    • getCharSequence

      public CharSequence getCharSequence(int index, int length, Charset charset)
      Description copied from class: ByteBuf
      Gets a CharSequence with the given length at the given index.
      Specified by:
      getCharSequence in class ByteBuf
      Parameters:
      length - the length to read
      charset - that should be used
      Returns:
      the sequence
    • readCharSequence

      public CharSequence readCharSequence(int length, Charset charset)
      Description copied from class: ByteBuf
      Gets a CharSequence with the given length at the current readerIndex and increases the readerIndex by the given length.
      Specified by:
      readCharSequence in class ByteBuf
      Parameters:
      length - the length to read
      charset - that should be used
      Returns:
      the sequence
    • setByte

      public ByteBuf setByte(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified byte at the specified absolute index in this buffer. The 24 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setByte in class ByteBuf
    • _setByte

      protected abstract void _setByte(int index, int value)
    • setBoolean

      public ByteBuf setBoolean(int index, boolean value)
      Description copied from class: ByteBuf
      Sets the specified boolean at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setBoolean in class ByteBuf
    • setShort

      public ByteBuf setShort(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 16-bit short integer at the specified absolute index in this buffer. The 16 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setShort in class ByteBuf
    • _setShort

      protected abstract void _setShort(int index, int value)
    • setShortLE

      public ByteBuf setShortLE(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 16-bit short integer at the specified absolute index in this buffer with the Little Endian Byte Order. The 16 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setShortLE in class ByteBuf
    • _setShortLE

      protected abstract void _setShortLE(int index, int value)
    • setChar

      public ByteBuf setChar(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 2-byte UTF-16 character at the specified absolute index in this buffer. The 16 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setChar in class ByteBuf
    • setMedium

      public ByteBuf setMedium(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 24-bit medium integer at the specified absolute index in this buffer. Please note that the most significant byte is ignored in the specified value. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setMedium in class ByteBuf
    • _setMedium

      protected abstract void _setMedium(int index, int value)
    • setMediumLE

      public ByteBuf setMediumLE(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 24-bit medium integer at the specified absolute index in this buffer in the Little Endian Byte Order. Please note that the most significant byte is ignored in the specified value. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setMediumLE in class ByteBuf
    • _setMediumLE

      protected abstract void _setMediumLE(int index, int value)
    • setInt

      public ByteBuf setInt(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setInt in class ByteBuf
    • _setInt

      protected abstract void _setInt(int index, int value)
    • setIntLE

      public ByteBuf setIntLE(int index, int value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit integer at the specified absolute index in this buffer with Little Endian byte order . This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setIntLE in class ByteBuf
    • _setIntLE

      protected abstract void _setIntLE(int index, int value)
    • setFloat

      public ByteBuf setFloat(int index, float value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit floating-point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setFloat in class ByteBuf
    • setLong

      public ByteBuf setLong(int index, long value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit long integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setLong in class ByteBuf
    • _setLong

      protected abstract void _setLong(int index, long value)
    • setLongLE

      public ByteBuf setLongLE(int index, long value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit long integer at the specified absolute index in this buffer in Little Endian Byte Order. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setLongLE in class ByteBuf
    • _setLongLE

      protected abstract void _setLongLE(int index, long value)
    • setDouble

      public ByteBuf setDouble(int index, double value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit floating-point number at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setDouble in class ByteBuf
    • setBytes

      public ByteBuf setBytes(int index, byte[] src)
      Description copied from class: ByteBuf
      Transfers the specified source array's data to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setBytes in class ByteBuf
    • setBytes

      public ByteBuf setBytes(int index, ByteBuf src)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer becomes unreadable. This method is basically same with ByteBuf.setBytes(int, ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while ByteBuf.setBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of this buffer (i.e. this).
      Specified by:
      setBytes in class ByteBuf
    • checkReadableBounds

      private static void checkReadableBounds(ByteBuf src, int length)
    • setBytes

      public ByteBuf setBytes(int index, ByteBuf src, int length)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index. This method is basically same with ByteBuf.setBytes(int, ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while ByteBuf.setBytes(int, ByteBuf, int, int) does not. This method does not modify readerIndex or writerIndex of this buffer (i.e. this).
      Specified by:
      setBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
    • setZero

      public ByteBuf setZero(int index, int length)
      Description copied from class: ByteBuf
      Fills this buffer with NUL (0x00) starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      setZero in class ByteBuf
      Parameters:
      length - the number of NULs to write to the buffer
    • setCharSequence

      public int setCharSequence(int index, CharSequence sequence, Charset charset)
      Description copied from class: ByteBuf
      Writes the specified CharSequence at the given index. The writerIndex is not modified by this method.
      Specified by:
      setCharSequence in class ByteBuf
      Parameters:
      index - on which the sequence should be written
      sequence - to write
      charset - that should be used.
      Returns:
      the written number of bytes.
    • setCharSequence0

      private int setCharSequence0(int index, CharSequence sequence, Charset charset, boolean expand)
    • readByte

      public byte readByte()
      Description copied from class: ByteBuf
      Gets a byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Specified by:
      readByte in class ByteBuf
    • readBoolean

      public boolean readBoolean()
      Description copied from class: ByteBuf
      Gets a boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Specified by:
      readBoolean in class ByteBuf
    • readUnsignedByte

      public short readUnsignedByte()
      Description copied from class: ByteBuf
      Gets an unsigned byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Specified by:
      readUnsignedByte in class ByteBuf
    • readShort

      public short readShort()
      Description copied from class: ByteBuf
      Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      Specified by:
      readShort in class ByteBuf
    • readShortLE

      public short readShortLE()
      Description copied from class: ByteBuf
      Gets a 16-bit short integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 2 in this buffer.
      Specified by:
      readShortLE in class ByteBuf
    • readUnsignedShort

      public int readUnsignedShort()
      Description copied from class: ByteBuf
      Gets an unsigned 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      Specified by:
      readUnsignedShort in class ByteBuf
    • readUnsignedShortLE

      public int readUnsignedShortLE()
      Description copied from class: ByteBuf
      Gets an unsigned 16-bit short integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 2 in this buffer.
      Specified by:
      readUnsignedShortLE in class ByteBuf
    • readMedium

      public int readMedium()
      Description copied from class: ByteBuf
      Gets a 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
      Specified by:
      readMedium in class ByteBuf
    • readMediumLE

      public int readMediumLE()
      Description copied from class: ByteBuf
      Gets a 24-bit medium integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 3 in this buffer.
      Specified by:
      readMediumLE in class ByteBuf
    • readUnsignedMedium

      public int readUnsignedMedium()
      Description copied from class: ByteBuf
      Gets an unsigned 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
      Specified by:
      readUnsignedMedium in class ByteBuf
    • readUnsignedMediumLE

      public int readUnsignedMediumLE()
      Description copied from class: ByteBuf
      Gets an unsigned 24-bit medium integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 3 in this buffer.
      Specified by:
      readUnsignedMediumLE in class ByteBuf
    • readInt

      public int readInt()
      Description copied from class: ByteBuf
      Gets a 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Specified by:
      readInt in class ByteBuf
    • readIntLE

      public int readIntLE()
      Description copied from class: ByteBuf
      Gets a 32-bit integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 4 in this buffer.
      Specified by:
      readIntLE in class ByteBuf
    • readUnsignedInt

      public long readUnsignedInt()
      Description copied from class: ByteBuf
      Gets an unsigned 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Specified by:
      readUnsignedInt in class ByteBuf
    • readUnsignedIntLE

      public long readUnsignedIntLE()
      Description copied from class: ByteBuf
      Gets an unsigned 32-bit integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 4 in this buffer.
      Specified by:
      readUnsignedIntLE in class ByteBuf
    • readLong

      public long readLong()
      Description copied from class: ByteBuf
      Gets a 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
      Specified by:
      readLong in class ByteBuf
    • readLongLE

      public long readLongLE()
      Description copied from class: ByteBuf
      Gets a 64-bit integer at the current readerIndex in the Little Endian Byte Order and increases the readerIndex by 8 in this buffer.
      Specified by:
      readLongLE in class ByteBuf
    • readChar

      public char readChar()
      Description copied from class: ByteBuf
      Gets a 2-byte UTF-16 character at the current readerIndex and increases the readerIndex by 2 in this buffer.
      Specified by:
      readChar in class ByteBuf
    • readFloat

      public float readFloat()
      Description copied from class: ByteBuf
      Gets a 32-bit floating point number at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Specified by:
      readFloat in class ByteBuf
    • readDouble

      public double readDouble()
      Description copied from class: ByteBuf
      Gets a 64-bit floating point number at the current readerIndex and increases the readerIndex by 8 in this buffer.
      Specified by:
      readDouble in class ByteBuf
    • readBytes

      public ByteBuf readBytes(int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to a newly created buffer starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length). The returned buffer's readerIndex and writerIndex are 0 and length respectively.
      Specified by:
      readBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
      Returns:
      the newly created buffer which contains the transferred bytes
    • readSlice

      public ByteBuf readSlice(int length)
      Description copied from class: ByteBuf
      Returns a new slice of this buffer's sub-region starting at the current readerIndex and increases the readerIndex by the size of the new slice (= length).

      Also be aware that this method will NOT call ByteBuf.retain() and so the reference count will NOT be increased.

      Specified by:
      readSlice in class ByteBuf
      Parameters:
      length - the size of the new slice
      Returns:
      the newly created slice
    • readRetainedSlice

      public ByteBuf readRetainedSlice(int length)
      Description copied from class: ByteBuf
      Returns a new retained slice of this buffer's sub-region starting at the current readerIndex and increases the readerIndex by the size of the new slice (= length).

      Note that this method returns a retained buffer unlike ByteBuf.readSlice(int). This method behaves similarly to readSlice(...).retain() except that this method may return a buffer implementation that produces less garbage.

      Specified by:
      readRetainedSlice in class ByteBuf
      Parameters:
      length - the size of the new slice
      Returns:
      the newly created slice
    • readBytes

      public ByteBuf readBytes(byte[] dst, int dstIndex, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      Specified by:
      readBytes in class ByteBuf
      Parameters:
      dstIndex - the first index of the destination
      length - the number of bytes to transfer
    • readBytes

      public ByteBuf readBytes(byte[] dst)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= dst.length).
      Specified by:
      readBytes in class ByteBuf
    • readBytes

      public ByteBuf readBytes(ByteBuf dst)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination becomes non-writable, and increases the readerIndex by the number of the transferred bytes. This method is basically same with ByteBuf.readBytes(ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while ByteBuf.readBytes(ByteBuf, int, int) does not.
      Specified by:
      readBytes in class ByteBuf
    • readBytes

      public ByteBuf readBytes(ByteBuf dst, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length). This method is basically same with ByteBuf.readBytes(ByteBuf, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes (= length) while ByteBuf.readBytes(ByteBuf, int, int) does not.
      Specified by:
      readBytes in class ByteBuf
    • readBytes

      public ByteBuf readBytes(ByteBuf dst, int dstIndex, int length)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      Specified by:
      readBytes in class ByteBuf
      Parameters:
      dstIndex - the first index of the destination
      length - the number of bytes to transfer
    • readBytes

      public ByteBuf readBytes(ByteBuffer dst)
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination's position reaches its limit, and increases the readerIndex by the number of the transferred bytes.
      Specified by:
      readBytes in class ByteBuf
    • readBytes

      public int readBytes(GatheringByteChannel out, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified stream starting at the current readerIndex.
      Specified by:
      readBytes in class ByteBuf
      Parameters:
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes written out to the specified channel
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • readBytes

      public int readBytes(FileChannel out, long position, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data starting at the current readerIndex to the specified channel starting at the given file position. This method does not modify the channel's position.
      Specified by:
      readBytes in class ByteBuf
      Parameters:
      position - the file position at which the transfer is to begin
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes written out to the specified channel
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • readBytes

      public ByteBuf readBytes(OutputStream out, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers this buffer's data to the specified stream starting at the current readerIndex.
      Specified by:
      readBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
      Throws:
      IOException - if the specified stream threw an exception during I/O
    • skipBytes

      public ByteBuf skipBytes(int length)
      Description copied from class: ByteBuf
      Increases the current readerIndex by the specified length in this buffer.
      Specified by:
      skipBytes in class ByteBuf
    • writeBoolean

      public ByteBuf writeBoolean(boolean value)
      Description copied from class: ByteBuf
      Sets the specified boolean at the current writerIndex and increases the writerIndex by 1 in this buffer. If this.writableBytes is less than 1, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBoolean in class ByteBuf
    • writeByte

      public ByteBuf writeByte(int value)
      Description copied from class: ByteBuf
      Sets the specified byte at the current writerIndex and increases the writerIndex by 1 in this buffer. The 24 high-order bits of the specified value are ignored. If this.writableBytes is less than 1, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeByte in class ByteBuf
    • writeShort

      public ByteBuf writeShort(int value)
      Description copied from class: ByteBuf
      Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer. The 16 high-order bits of the specified value are ignored. If this.writableBytes is less than 2, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeShort in class ByteBuf
    • writeShortLE

      public ByteBuf writeShortLE(int value)
      Description copied from class: ByteBuf
      Sets the specified 16-bit short integer in the Little Endian Byte Order at the current writerIndex and increases the writerIndex by 2 in this buffer. The 16 high-order bits of the specified value are ignored. If this.writableBytes is less than 2, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeShortLE in class ByteBuf
    • writeMedium

      public ByteBuf writeMedium(int value)
      Description copied from class: ByteBuf
      Sets the specified 24-bit medium integer at the current writerIndex and increases the writerIndex by 3 in this buffer. If this.writableBytes is less than 3, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeMedium in class ByteBuf
    • writeMediumLE

      public ByteBuf writeMediumLE(int value)
      Description copied from class: ByteBuf
      Sets the specified 24-bit medium integer at the current writerIndex in the Little Endian Byte Order and increases the writerIndex by 3 in this buffer. If this.writableBytes is less than 3, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeMediumLE in class ByteBuf
    • writeInt

      public ByteBuf writeInt(int value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer. If this.writableBytes is less than 4, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeInt in class ByteBuf
    • writeIntLE

      public ByteBuf writeIntLE(int value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit integer at the current writerIndex in the Little Endian Byte Order and increases the writerIndex by 4 in this buffer. If this.writableBytes is less than 4, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeIntLE in class ByteBuf
    • writeLong

      public ByteBuf writeLong(long value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer. If this.writableBytes is less than 8, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeLong in class ByteBuf
    • writeLongLE

      public ByteBuf writeLongLE(long value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit long integer at the current writerIndex in the Little Endian Byte Order and increases the writerIndex by 8 in this buffer. If this.writableBytes is less than 8, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeLongLE in class ByteBuf
    • writeChar

      public ByteBuf writeChar(int value)
      Description copied from class: ByteBuf
      Sets the specified 2-byte UTF-16 character at the current writerIndex and increases the writerIndex by 2 in this buffer. The 16 high-order bits of the specified value are ignored. If this.writableBytes is less than 2, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeChar in class ByteBuf
    • writeFloat

      public ByteBuf writeFloat(float value)
      Description copied from class: ByteBuf
      Sets the specified 32-bit floating point number at the current writerIndex and increases the writerIndex by 4 in this buffer. If this.writableBytes is less than 4, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeFloat in class ByteBuf
    • writeDouble

      public ByteBuf writeDouble(double value)
      Description copied from class: ByteBuf
      Sets the specified 64-bit floating point number at the current writerIndex and increases the writerIndex by 8 in this buffer. If this.writableBytes is less than 8, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeDouble in class ByteBuf
    • writeBytes

      public ByteBuf writeBytes(byte[] src, int srcIndex, int length)
      Description copied from class: ByteBuf
      Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length). If this.writableBytes is less than length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
      Parameters:
      srcIndex - the first index of the source
      length - the number of bytes to transfer
    • writeBytes

      public ByteBuf writeBytes(byte[] src)
      Description copied from class: ByteBuf
      Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= src.length). If this.writableBytes is less than src.length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
    • writeBytes

      public ByteBuf writeBytes(ByteBuf src)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer becomes unreadable, and increases the writerIndex by the number of the transferred bytes. This method is basically same with ByteBuf.writeBytes(ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while ByteBuf.writeBytes(ByteBuf, int, int) does not. If this.writableBytes is less than src.readableBytes, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
    • writeBytes

      public ByteBuf writeBytes(ByteBuf src, int length)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length). This method is basically same with ByteBuf.writeBytes(ByteBuf, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes (= length) while ByteBuf.writeBytes(ByteBuf, int, int) does not. If this.writableBytes is less than length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
    • writeBytes

      public ByteBuf writeBytes(ByteBuf src, int srcIndex, int length)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length). If this.writableBytes is less than length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
      Parameters:
      srcIndex - the first index of the source
      length - the number of bytes to transfer
    • writeBytes

      public ByteBuf writeBytes(ByteBuffer src)
      Description copied from class: ByteBuf
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer's position reaches its limit, and increases the writerIndex by the number of the transferred bytes. If this.writableBytes is less than src.remaining(), ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
    • writeBytes

      public int writeBytes(InputStream in, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers the content of the specified stream to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes. If this.writableBytes is less than length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
      Parameters:
      length - the number of bytes to transfer
      Returns:
      the actual number of bytes read in from the specified channel. -1 if the specified InputStream reached EOF.
      Throws:
      IOException - if the specified stream threw an exception during I/O
    • writeBytes

      public int writeBytes(ScatteringByteChannel in, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers the content of the specified channel to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes. If this.writableBytes is less than length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
      Parameters:
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes read in from the specified channel. -1 if the specified channel is closed or it reached EOF.
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • writeBytes

      public int writeBytes(FileChannel in, long position, int length) throws IOException
      Description copied from class: ByteBuf
      Transfers the content of the specified channel starting at the given file position to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes. This method does not modify the channel's position. If this.writableBytes is less than length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeBytes in class ByteBuf
      Parameters:
      position - the file position at which the transfer is to begin
      length - the maximum number of bytes to transfer
      Returns:
      the actual number of bytes read in from the specified channel. -1 if the specified channel is closed or it reached EOF.
      Throws:
      IOException - if the specified channel threw an exception during I/O
    • writeZero

      public ByteBuf writeZero(int length)
      Description copied from class: ByteBuf
      Fills this buffer with NUL (0x00) starting at the current writerIndex and increases the writerIndex by the specified length. If this.writableBytes is less than length, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeZero in class ByteBuf
      Parameters:
      length - the number of NULs to write to the buffer
    • writeCharSequence

      public int writeCharSequence(CharSequence sequence, Charset charset)
      Description copied from class: ByteBuf
      Writes the specified CharSequence at the current writerIndex and increases the writerIndex by the written bytes. in this buffer. If this.writableBytes is not large enough to write the whole sequence, ByteBuf.ensureWritable(int) will be called in an attempt to expand capacity to accommodate.
      Specified by:
      writeCharSequence in class ByteBuf
      Parameters:
      sequence - to write
      charset - that should be used
      Returns:
      the written number of bytes
    • copy

      public ByteBuf copy()
      Description copied from class: ByteBuf
      Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method is identical to buf.copy(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      copy in class ByteBuf
    • duplicate

      public ByteBuf duplicate()
      Description copied from class: ByteBuf
      Returns a buffer which shares the whole region of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.

      The reader and writer marks will not be duplicated. Also be aware that this method will NOT call ByteBuf.retain() and so the reference count will NOT be increased.

      Specified by:
      duplicate in class ByteBuf
      Returns:
      A buffer whose readable content is equivalent to the buffer returned by ByteBuf.slice(). However this buffer will share the capacity of the underlying buffer, and therefore allows access to all of the underlying content if necessary.
    • retainedDuplicate

      public ByteBuf retainedDuplicate()
      Description copied from class: ByteBuf
      Returns a retained buffer which shares the whole region of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical to buf.slice(0, buf.capacity()). This method does not modify readerIndex or writerIndex of this buffer.

      Note that this method returns a retained buffer unlike ByteBuf.slice(int, int). This method behaves similarly to duplicate().retain() except that this method may return a buffer implementation that produces less garbage.

      Specified by:
      retainedDuplicate in class ByteBuf
    • slice

      public ByteBuf slice()
      Description copied from class: ByteBuf
      Returns a slice of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical to buf.slice(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer.

      Also be aware that this method will NOT call ByteBuf.retain() and so the reference count will NOT be increased.

      Specified by:
      slice in class ByteBuf
    • retainedSlice

      public ByteBuf retainedSlice()
      Description copied from class: ByteBuf
      Returns a retained slice of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method is identical to buf.slice(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer.

      Note that this method returns a retained buffer unlike ByteBuf.slice(). This method behaves similarly to slice().retain() except that this method may return a buffer implementation that produces less garbage.

      Specified by:
      retainedSlice in class ByteBuf
    • slice

      public ByteBuf slice(int index, int length)
      Description copied from class: ByteBuf
      Returns a slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.

      Also be aware that this method will NOT call ByteBuf.retain() and so the reference count will NOT be increased.

      Specified by:
      slice in class ByteBuf
    • retainedSlice

      public ByteBuf retainedSlice(int index, int length)
      Description copied from class: ByteBuf
      Returns a retained slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.

      Note that this method returns a retained buffer unlike ByteBuf.slice(int, int). This method behaves similarly to slice(...).retain() except that this method may return a buffer implementation that produces less garbage.

      Specified by:
      retainedSlice in class ByteBuf
    • nioBuffer

      public ByteBuffer nioBuffer()
      Description copied from class: ByteBuf
      Exposes this buffer's readable bytes as an NIO ByteBuffer. The returned buffer either share or contains the copied content of this buffer, while changing the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer. This method is identical to buf.nioBuffer(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer. Please note that the returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic buffer and it adjusted its capacity.
      Specified by:
      nioBuffer in class ByteBuf
      See Also:
    • nioBuffers

      public ByteBuffer[] nioBuffers()
      Description copied from class: ByteBuf
      Exposes this buffer's readable bytes as an NIO ByteBuffer's. The returned buffer either share or contains the copied content of this buffer, while changing the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer. This method does not modify readerIndex or writerIndex of this buffer. Please note that the returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic buffer and it adjusted its capacity.
      Specified by:
      nioBuffers in class ByteBuf
      See Also:
    • toString

      public String toString(Charset charset)
      Description copied from class: ByteBuf
      Decodes this buffer's readable bytes into a string with the specified character set name. This method is identical to buf.toString(buf.readerIndex(), buf.readableBytes(), charsetName). This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      toString in class ByteBuf
    • toString

      public String toString(int index, int length, Charset charset)
      Description copied from class: ByteBuf
      Decodes this buffer's sub-region into a string with the specified character set. This method does not modify readerIndex or writerIndex of this buffer.
      Specified by:
      toString in class ByteBuf
    • indexOf

      public int indexOf(int fromIndex, int toIndex, byte value)
      Description copied from class: ByteBuf
      Locates the first occurrence of the specified value in this buffer. The search takes place from the specified fromIndex (inclusive) to the specified toIndex (exclusive).

      If fromIndex is greater than toIndex, the search is performed in a reversed order from fromIndex (exclusive) down to toIndex (inclusive).

      Note that the lower index is always included and higher always excluded.

      This method does not modify readerIndex or writerIndex of this buffer.

      Specified by:
      indexOf in class ByteBuf
      Returns:
      the absolute index of the first occurrence if found. -1 otherwise.
    • bytesBefore

      public int bytesBefore(byte value)
      Description copied from class: ByteBuf
      Locates the first occurrence of the specified value in this buffer. The search takes place from the current readerIndex (inclusive) to the current writerIndex (exclusive).

      This method does not modify readerIndex or writerIndex of this buffer.

      Specified by:
      bytesBefore in class ByteBuf
      Returns:
      the number of bytes between the current readerIndex and the first occurrence if found. -1 otherwise.
    • bytesBefore

      public int bytesBefore(int length, byte value)
      Description copied from class: ByteBuf
      Locates the first occurrence of the specified value in this buffer. The search starts from the current readerIndex (inclusive) and lasts for the specified length.

      This method does not modify readerIndex or writerIndex of this buffer.

      Specified by:
      bytesBefore in class ByteBuf
      Returns:
      the number of bytes between the current readerIndex and the first occurrence if found. -1 otherwise.
    • bytesBefore

      public int bytesBefore(int index, int length, byte value)
      Description copied from class: ByteBuf
      Locates the first occurrence of the specified value in this buffer. The search starts from the specified index (inclusive) and lasts for the specified length.

      This method does not modify readerIndex or writerIndex of this buffer.

      Specified by:
      bytesBefore in class ByteBuf
      Returns:
      the number of bytes between the specified index and the first occurrence if found. -1 otherwise.
    • forEachByte

      public int forEachByte(ByteProcessor processor)
      Description copied from class: ByteBuf
      Iterates over the readable bytes of this buffer with the specified processor in ascending order.
      Specified by:
      forEachByte in class ByteBuf
      Returns:
      -1 if the processor iterated to or beyond the end of the readable bytes. The last-visited index If the ByteProcessor.process(byte) returned false.
    • forEachByte

      public int forEachByte(int index, int length, ByteProcessor processor)
      Description copied from class: ByteBuf
      Iterates over the specified area of this buffer with the specified processor in ascending order. (i.e. index, (index + 1), .. (index + length - 1))
      Specified by:
      forEachByte in class ByteBuf
      Returns:
      -1 if the processor iterated to or beyond the end of the specified area. The last-visited index If the ByteProcessor.process(byte) returned false.
    • forEachByteAsc0

      int forEachByteAsc0(int start, int end, ByteProcessor processor) throws Exception
      Throws:
      Exception
    • forEachByteDesc

      public int forEachByteDesc(ByteProcessor processor)
      Description copied from class: ByteBuf
      Iterates over the readable bytes of this buffer with the specified processor in descending order.
      Specified by:
      forEachByteDesc in class ByteBuf
      Returns:
      -1 if the processor iterated to or beyond the beginning of the readable bytes. The last-visited index If the ByteProcessor.process(byte) returned false.
    • forEachByteDesc

      public int forEachByteDesc(int index, int length, ByteProcessor processor)
      Description copied from class: ByteBuf
      Iterates over the specified area of this buffer with the specified processor in descending order. (i.e. (index + length - 1), (index + length - 2), ... index)
      Specified by:
      forEachByteDesc in class ByteBuf
      Returns:
      -1 if the processor iterated to or beyond the beginning of the specified area. The last-visited index If the ByteProcessor.process(byte) returned false.
    • forEachByteDesc0

      int forEachByteDesc0(int rStart, int rEnd, ByteProcessor processor) throws Exception
      Throws:
      Exception
    • hashCode

      public int hashCode()
      Description copied from class: ByteBuf
      Returns a hash code which was calculated from the content of this buffer. If there's a byte array which is equal to this array, both arrays should return the same value.
      Specified by:
      hashCode in class ByteBuf
    • equals

      public boolean equals(Object o)
      Description copied from class: ByteBuf
      Determines if the content of the specified buffer is identical to the content of this array. 'Identical' here means:
      • the size of the contents of the two buffers are same and
      • every single byte of the content of the two buffers are same.
      Please note that it does not compare ByteBuf.readerIndex() nor ByteBuf.writerIndex(). This method also returns false for null and an object which is not an instance of ByteBuf type.
      Specified by:
      equals in class ByteBuf
    • compareTo

      public int compareTo(ByteBuf that)
      Description copied from class: ByteBuf
      Compares the content of the specified buffer to the content of this buffer. Comparison is performed in the same manner with the string comparison functions of various languages such as strcmp, memcmp and String.compareTo(String).
      Specified by:
      compareTo in interface Comparable<ByteBuf>
      Specified by:
      compareTo in class ByteBuf
    • toString

      public String toString()
      Description copied from class: ByteBuf
      Returns the string representation of this buffer. This method does not necessarily return the whole content of the buffer but returns the values of the key properties such as ByteBuf.readerIndex(), ByteBuf.writerIndex() and ByteBuf.capacity().
      Specified by:
      toString in class ByteBuf
    • checkIndex

      protected final void checkIndex(int index)
    • checkIndex

      protected final void checkIndex(int index, int fieldLength)
    • checkRangeBounds

      private static void checkRangeBounds(String indexName, int index, int fieldLength, int capacity)
    • checkIndex0

      final void checkIndex0(int index, int fieldLength)
    • checkSrcIndex

      protected final void checkSrcIndex(int index, int length, int srcIndex, int srcCapacity)
    • checkDstIndex

      protected final void checkDstIndex(int index, int length, int dstIndex, int dstCapacity)
    • checkDstIndex

      protected final void checkDstIndex(int length, int dstIndex, int dstCapacity)
    • checkReadableBytes

      protected final void checkReadableBytes(int minimumReadableBytes)
      Throws an IndexOutOfBoundsException if the current readable bytes of this buffer is less than the specified value.
    • checkNewCapacity

      protected final void checkNewCapacity(int newCapacity)
    • checkReadableBytes0

      private void checkReadableBytes0(int minimumReadableBytes)
    • ensureAccessible

      protected final void ensureAccessible()
      Should be called by every method that tries to access the buffers content to check if the buffer was released before.
    • setIndex0

      final void setIndex0(int readerIndex, int writerIndex)
    • discardMarks

      final void discardMarks()