Interface ActiveMQBuffer

All Superinterfaces:
DataInput

public interface ActiveMQBuffer extends DataInput
An ActiveMQBuffer wraps a Netty's ChannelBuffer and is used throughout ActiveMQ Artemis code base.

Instances of it can be obtained from ActiveMQBuffers factory.

Much of it derived from Netty ChannelBuffer by Trustin Lee

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    io.netty.buffer.ByteBuf
    Returns the underlying Netty's ByteBuf
    int
    Returns the number of bytes this buffer can contain.
    void
    Sets the readerIndex and writerIndex of this buffer to 0.
    Returns a copy of this buffer's readable bytes.
    copy(int index, int length)
    Returns a copy of this buffer's sub-region.
    void
    Discards the bytes between the 0th index and readerIndex.
    Returns a buffer which shares the whole region of this buffer.
    byte
    getByte(int index)
    Gets a byte at the specified absolute index in this buffer.
    void
    getBytes(int index, byte[] dst)
    Transfers this buffer's data to the specified destination starting at the specified absolute index.
    void
    getBytes(int index, byte[] dst, int dstIndex, int length)
    Transfers this buffer's data to the specified destination starting at the specified absolute index.
    void
    getBytes(int index, ByteBuffer dst)
    Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit.
    void
    getBytes(int index, ActiveMQBuffer dst)
    Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination becomes non-writable.
    void
    getBytes(int index, ActiveMQBuffer dst, int length)
    Transfers this buffer's data to the specified destination starting at the specified absolute index.
    void
    getBytes(int index, ActiveMQBuffer dst, int dstIndex, int length)
    Transfers this buffer's data to the specified destination starting at the specified absolute index.
    char
    getChar(int index)
    Gets a char at the specified absolute index in this buffer.
    double
    getDouble(int index)
    Gets a double at the specified absolute index in this buffer.
    float
    getFloat(int index)
    Gets a float 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.
    long
    getLong(int index)
    Gets a 64-bit long integer at the specified absolute index in this buffer.
    short
    getShort(int index)
    Gets a 16-bit short integer at the specified absolute index in this buffer.
    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.
    int
    getUnsignedShort(int index)
    Gets an unsigned 16-bit short integer at the specified absolute index in this buffer.
    void
    Marks the current readerIndex in this buffer.
    void
    Marks the current writerIndex in this buffer.
    boolean
     
    int
     
    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.
    void
    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).
    void
    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).
    void
    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.
    void
    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.
    void
    readBytes(ActiveMQBuffer 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).
    void
    readBytes(ActiveMQBuffer 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).
    char
    Gets a char at the current readerIndex and increases the readerIndex by 2 in this buffer.
    double
    Gets a double at the current readerIndex and increases the readerIndex by 8 in this buffer.
    int
     
    void
    readerIndex(int readerIndex)
    Sets the readerIndex of this buffer.
    float
    Gets a float 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.
    long
    Gets a 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
    Gets a (potentially null) boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
    Gets a (potentially null) 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
    Gets a (potentially null) 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
    Gets a SimpleString (potentially null) at the current readerIndex
    Gets a String (potentially null) at the current readerIndex
    short
    Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
    Gets a non-null SimpleString at the current readerIndex
    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).
    Gets a non-null String at the current readerIndex
    int
    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.
    int
    Gets an unsigned 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
    Gets a UTF-8 String at the current readerIndex
    void
    Release any underlying resources held by this buffer
    void
    Repositions the current readerIndex to the marked readerIndex in this buffer.
    void
    Repositions the current writerIndex to the marked writerIndex in this buffer.
    void
    setByte(int index, byte value)
    Sets the specified byte at the specified absolute index in this buffer.
    void
    setBytes(int index, byte[] src)
    Transfers the specified source array's data to this buffer starting at the specified absolute index.
    void
    setBytes(int index, byte[] src, int srcIndex, int length)
    Transfers the specified source array's data to this buffer starting at the specified absolute index.
    void
    setBytes(int index, ByteBuffer src)
    Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit.
    void
    setBytes(int index, ActiveMQBuffer src)
    Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the destination becomes unreadable.
    void
    setBytes(int index, ActiveMQBuffer src, int length)
    Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
    void
    setBytes(int index, ActiveMQBuffer src, int srcIndex, int length)
    Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
    void
    setChar(int index, char value)
    Sets the specified char at the specified absolute index in this buffer.
    void
    setDouble(int index, double value)
    Sets the specified double at the specified absolute index in this buffer.
    void
    setFloat(int index, float value)
    Sets the specified float at the specified absolute index in this buffer.
    void
    setIndex(int readerIndex, int writerIndex)
    Sets the readerIndex and writerIndex of this buffer in one shot.
    void
    setInt(int index, int value)
    Sets the specified 32-bit integer at the specified absolute index in this buffer.
    void
    setLong(int index, long value)
    Sets the specified 64-bit long integer at the specified absolute index in this buffer.
    void
    setShort(int index, short value)
    Sets the specified 16-bit short integer at the specified absolute index in this buffer.
    int
    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.
    Converts this buffer's readable bytes into a NIO buffer.
    toByteBuffer(int index, int length)
    Converts this buffer's sub-region into a NIO buffer.
    boolean
     
    int
     
    void
    writeBoolean(boolean val)
    Sets the specified boolean at the current writerIndex
    void
    writeByte(byte value)
    Sets the specified byte at the current writerIndex and increases the writerIndex by 1 in this buffer.
    void
    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).
    void
    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).
    void
    writeBytes(io.netty.buffer.ByteBuf src, int srcIndex, int length)
    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.
    void
    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.
    void
    writeBytes(ActiveMQBuffer 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).
    void
    writeBytes(ActiveMQBuffer 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).
    void
    writeChar(char chr)
    Sets the specified char at the current writerIndex and increases the writerIndex by 2 in this buffer.
    void
    writeDouble(double value)
    Sets the specified double at the current writerIndex and increases the writerIndex by 8 in this buffer.
    void
    writeFloat(float value)
    Sets the specified float at the current writerIndex and increases the writerIndex by 4 in this buffer.
    void
    writeInt(int value)
    Sets the specified 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
    void
    writeLong(long value)
    Sets the specified 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
    void
    Sets the specified (potentially null) Boolean at the current writerIndex
    void
    Sets the specified (potentially null) 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
    void
    Sets the specified (potentially null) 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
    void
    Sets the specified SimpleString (potentially null) at the current writerIndex
    void
    Sets the specified String (potentially null) at the current writerIndex
    int
     
    void
    writerIndex(int writerIndex)
    Sets the writerIndex of this buffer.
    void
    writeShort(short value)
    Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer.
    void
    Sets the specified non-null SimpleString at the current writerIndex
    void
    Sets the specified non-null String at the current writerIndex
    void
    Sets the specified UTF-8 String at the current writerIndex

    Methods inherited from interface java.io.DataInput

    readFully, readFully, readLine
  • Method Details

    • byteBuf

      io.netty.buffer.ByteBuf byteBuf()
      Returns the underlying Netty's ByteBuf
      Returns:
      the underlying Netty's ByteBuf
    • capacity

      int capacity()
      Returns the number of bytes this buffer can contain.
      Returns:
      the number of bytes this buffer can contain.
    • readerIndex

      int readerIndex()
      Returns:
      the readerIndex of this buffer.
    • readerIndex

      void readerIndex(int readerIndex)
      Sets the readerIndex of this buffer.
      Parameters:
      readerIndex - The reader's index
      Throws:
      IndexOutOfBoundsException - if the specified readerIndex is less than 0 or greater than this.writerIndex
    • writerIndex

      int writerIndex()
      Returns:
      the writerIndex of this buffer.
    • writerIndex

      void writerIndex(int writerIndex)
      Sets the writerIndex of this buffer.
      Parameters:
      writerIndex - The writer's index
      Throws:
      IndexOutOfBoundsException - if the specified writerIndex is less than this.readerIndex or greater than this.capacity
    • setIndex

      void setIndex(int readerIndex, int writerIndex)
      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 readerIndex(int) and writerIndex(int) methods. For example, the following code will fail:
       // Create a buffer whose readerIndex, writerIndex and capacity are
       // 0, 0 and 8 respectively.
       ChannelBuffer buf = ChannelBuffers.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.
       ChannelBuffer buf = ChannelBuffers.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, setIndex(int, int) 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);
       
      Parameters:
      readerIndex - The reader's index
      writerIndex - The writer's index
      Throws:
      IndexOutOfBoundsException - if the specified readerIndex is less than 0, if the specified writerIndex is less than the specified readerIndex or if the specified writerIndex is greater than this.capacity
    • readableBytes

      int readableBytes()
      Returns:
      the number of readable bytes which is equal to (this.writerIndex - this.readerIndex).
    • writableBytes

      int writableBytes()
      Returns:
      the number of writable bytes which is equal to (this.capacity - this.writerIndex).
    • readable

      boolean readable()
      Returns:
      true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
    • writable

      boolean writable()
      Returns:
      trueif and only if (this.capacity - this.writerIndex) is greater than 0.
    • clear

      void clear()
      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.

    • markReaderIndex

      void markReaderIndex()
      Marks the current readerIndex in this buffer. You can reposition the current readerIndex to the marked readerIndex by calling resetReaderIndex(). The initial value of the marked readerIndex is 0.
    • resetReaderIndex

      void resetReaderIndex()
      Repositions the current readerIndex to the marked readerIndex in this buffer.
      Throws:
      IndexOutOfBoundsException - if the current writerIndex is less than the marked readerIndex
    • markWriterIndex

      void markWriterIndex()
      Marks the current writerIndex in this buffer. You can reposition the current writerIndex to the marked writerIndex by calling resetWriterIndex(). The initial value of the marked writerIndex is 0.
    • resetWriterIndex

      void resetWriterIndex()
      Repositions the current writerIndex to the marked writerIndex in this buffer.
      Throws:
      IndexOutOfBoundsException - if the current readerIndex is greater than the marked writerIndex
    • discardReadBytes

      void discardReadBytes()
      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.

    • getByte

      byte getByte(int index)
      Gets a byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      Returns:
      The byte at the specified index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 1 is greater than this.capacity
    • getUnsignedByte

      short getUnsignedByte(int index)
      Gets an unsigned byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      Returns:
      an unsigned byte at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 1 is greater than this.capacity
    • getShort

      short getShort(int index)
      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.
      Parameters:
      index - Index into the buffer
      Returns:
      a 16-bit short integer at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 2 is greater than this.capacity
    • getUnsignedShort

      int getUnsignedShort(int index)
      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.
      Parameters:
      index - Index into the buffer
      Returns:
      an unsigned 16-bit short integer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 2 is greater than this.capacity
    • getInt

      int getInt(int index)
      Gets a 32-bit integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      Returns:
      a 32-bit integer at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 4 is greater than this.capacity
    • getUnsignedInt

      long getUnsignedInt(int index)
      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.
      Parameters:
      index - The index into this buffer
      Returns:
      an unsigned 32-bit integer at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 4 is greater than this.capacity
    • getLong

      long getLong(int index)
      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.
      Parameters:
      index - Index into the buffer
      Returns:
      a 64-bit long integer at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 8 is greater than this.capacity
    • getBytes

      void getBytes(int index, ActiveMQBuffer dst)
      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 getBytes(int, ActiveMQBuffer, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while getBytes(int, ActiveMQBuffer, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
      Parameters:
      index - Index into the buffer
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or if index + dst.writableBytes is greater than this.capacity
    • getBytes

      void getBytes(int index, ActiveMQBuffer dst, int length)
      Transfers this buffer's data to the specified destination starting at the specified absolute index. This method is basically same with getBytes(int, ActiveMQBuffer, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while getBytes(int, ActiveMQBuffer, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
      Parameters:
      length - the number of bytes to transfer
      index - Index into the buffer
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0, if index + length is greater than this.capacity, or if length is greater than dst.writableBytes
    • getBytes

      void getBytes(int index, ActiveMQBuffer dst, int dstIndex, int length)
      Transfers this buffer's data to the specified destination starting at the specified absolute index. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.
      Parameters:
      dst - The destination bufferIndex the first index of the destination
      length - The number of bytes to transfer
      index - Index into the buffer
      dstIndex - The index into the destination bufferThe destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0, if the specified dstIndex is less than 0, if index + length is greater than this.capacity, or if dstIndex + length is greater than dst.capacity
    • getBytes

      void getBytes(int index, byte[] dst)
      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
      Parameters:
      index - Index into the buffer
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or if index + dst.length is greater than this.capacity
    • getBytes

      void getBytes(int index, byte[] dst, int dstIndex, int length)
      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.
      Parameters:
      dstIndex - The first index of the destination
      length - The number of bytes to transfer
      index - Index into the buffer
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0, if the specified dstIndex is less than 0, if index + length is greater than this.capacity, or if dstIndex + length is greater than dst.length
    • getBytes

      void getBytes(int index, ByteBuffer dst)
      Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit. This method does not modify readerIndex or writerIndex of this buffer while the destination's position will be increased.
      Parameters:
      index - Index into the buffer
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or if index + dst.remaining() is greater than this.capacity
    • getChar

      char getChar(int index)
      Gets a char at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      Returns:
      a char at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 2 is greater than this.capacity
    • getFloat

      float getFloat(int index)
      Gets a float at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      Returns:
      a float at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 4 is greater than this.capacity
    • getDouble

      double getDouble(int index)
      Gets a double at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      Returns:
      a double at the specified absolute index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 8 is greater than this.capacity
    • setByte

      void setByte(int index, byte value)
      Sets the specified byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      value - The specified byte
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 1 is greater than this.capacity
    • setShort

      void setShort(int index, short value)
      Sets the specified 16-bit short integer at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      value - The specified 16-bit short integer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 2 is greater than this.capacity
    • setInt

      void setInt(int index, int value)
      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.
      Parameters:
      index - Index into the buffer
      value - The specified 32-bit integer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 4 is greater than this.capacity
    • setLong

      void setLong(int index, long value)
      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.
      Parameters:
      index - Index into the buffer
      value - The specified 64-bit long integer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 8 is greater than this.capacity
    • setBytes

      void setBytes(int index, ActiveMQBuffer src)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the destination becomes unreadable. This method is basically same with setBytes(int, ActiveMQBuffer, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while getBytes(int, ActiveMQBuffer, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
      Parameters:
      index - Index into the buffer
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or if index + src.readableBytes is greater than this.capacity
    • setBytes

      void setBytes(int index, ActiveMQBuffer src, int length)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index. This method is basically same with setBytes(int, ActiveMQBuffer, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes while getBytes(int, ActiveMQBuffer, int, int) does not. This method does not modify readerIndex or writerIndex of the source buffer (i.e. this).
      Parameters:
      length - the number of bytes to transfer
      index - Index into the buffer
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0, if index + length is greater than this.capacity, or if length is greater than src.readableBytes
    • setBytes

      void setBytes(int index, ActiveMQBuffer src, int srcIndex, int length)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.
      Parameters:
      src - The source bufferIndex the first index of the source
      length - The number of bytes to transfer
      index - Index into the buffer
      srcIndex - The source buffer index
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0, if the specified srcIndex is less than 0, if index + length is greater than this.capacity, or if srcIndex + length is greater than src.capacity
    • setBytes

      void setBytes(int index, byte[] src)
      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.
      Parameters:
      index - Index into the buffer
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or if index + src.length is greater than this.capacity
    • setBytes

      void setBytes(int index, byte[] src, int srcIndex, int length)
      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.
      Parameters:
      index - Index into the buffer
      src - The source buffer
      srcIndex - The source buffer index
      length - The number of bytes to transfer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0, if the specified srcIndex is less than 0, if index + length is greater than this.capacity, or if srcIndex + length is greater than src.length
    • setBytes

      void setBytes(int index, ByteBuffer src)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or if index + src.remaining() is greater than this.capacity
    • setChar

      void setChar(int index, char value)
      Sets the specified char at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      value - The specified char
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 2 is greater than this.capacity
    • setFloat

      void setFloat(int index, float value)
      Sets the specified float at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      value - The specified float
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 4 is greater than this.capacity
    • setDouble

      void setDouble(int index, double value)
      Sets the specified double at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      value - The specified double
      Throws:
      IndexOutOfBoundsException - if the specified index is less than 0 or index + 8 is greater than this.capacity
    • readByte

      byte readByte()
      Gets a byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Specified by:
      readByte in interface DataInput
      Returns:
      a byte at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 1
    • readUnsignedByte

      int readUnsignedByte()
      Gets an unsigned byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Specified by:
      readUnsignedByte in interface DataInput
      Returns:
      an unsigned byte at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 1
    • readShort

      short readShort()
      Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      Specified by:
      readShort in interface DataInput
      Returns:
      a 16-bit short integer at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 2
    • readUnsignedShort

      int readUnsignedShort()
      Gets an unsigned 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      Specified by:
      readUnsignedShort in interface DataInput
      Returns:
      an unsigned 16-bit short integer at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 2
    • readInt

      int readInt()
      Gets a 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Specified by:
      readInt in interface DataInput
      Returns:
      a 32-bit integer at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 4
    • readNullableInt

      Integer readNullableInt()
      Gets a (potentially null) 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Returns:
      a (potentially null) 32-bit integer at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 4
    • readUnsignedInt

      long readUnsignedInt()
      Gets an unsigned 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Returns:
      an unsigned 32-bit integer at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 4
    • readLong

      long readLong()
      Gets a 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
      Specified by:
      readLong in interface DataInput
      Returns:
      a 64-bit integer at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 8
    • readNullableLong

      Long readNullableLong()
      Gets a (potentially null) 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
      Returns:
      a (potentially null) 64-bit integer at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 8
    • readChar

      char readChar()
      Gets a char at the current readerIndex and increases the readerIndex by 2 in this buffer.
      Specified by:
      readChar in interface DataInput
      Returns:
      a char at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 2
    • readFloat

      float readFloat()
      Gets a float at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Specified by:
      readFloat in interface DataInput
      Returns:
      a float at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 4
    • readDouble

      double readDouble()
      Gets a double at the current readerIndex and increases the readerIndex by 8 in this buffer.
      Specified by:
      readDouble in interface DataInput
      Returns:
      a double at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 8
    • readBoolean

      boolean readBoolean()
      Gets a boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Specified by:
      readBoolean in interface DataInput
      Returns:
      a boolean at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 1
    • readNullableBoolean

      Boolean readNullableBoolean()
      Gets a (potentially null) boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Returns:
      a (potentially null) boolean at the current readerIndex
      Throws:
      IndexOutOfBoundsException - if this.readableBytes is less than 1
    • readNullableSimpleString

      SimpleString readNullableSimpleString()
      Gets a SimpleString (potentially null) at the current readerIndex
      Returns:
      a SimpleString (potentially null) at the current readerIndex
    • readNullableString

      String readNullableString()
      Gets a String (potentially null) at the current readerIndex
      Returns:
      a String (potentially null) at the current readerIndex
    • readSimpleString

      SimpleString readSimpleString()
      Gets a non-null SimpleString at the current readerIndex
      Returns:
      a non-null SimpleString at the current readerIndex
    • readString

      String readString()
      Gets a non-null String at the current readerIndex
      Returns:
      a non-null String at the current readerIndex
    • readUTF

      String readUTF()
      Gets a UTF-8 String at the current readerIndex
      Specified by:
      readUTF in interface DataInput
      Returns:
      a UTF-8 String at the current readerIndex
    • readSlice

      ActiveMQBuffer 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).
      Parameters:
      length - the size of the new slice
      Returns:
      the newly created slice
      Throws:
      IndexOutOfBoundsException - if length is greater than this.readableBytes
    • readBytes

      void readBytes(ActiveMQBuffer dst)
      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 readBytes(ActiveMQBuffer, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes while readBytes(ActiveMQBuffer, int, int) does not.
      Parameters:
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if dst.writableBytes is greater than this.readableBytes
    • readBytes

      void readBytes(ActiveMQBuffer 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). This method is basically same with readBytes(ActiveMQBuffer, int, int), except that this method increases the writerIndex of the destination by the number of the transferred bytes (= length) while readBytes(ActiveMQBuffer, int, int) does not.
      Parameters:
      dst - The destination buffer
      length - The number of bytes to transfer
      Throws:
      IndexOutOfBoundsException - if length is greater than this.readableBytes or if length is greater than dst.writableBytes
    • readBytes

      void readBytes(ActiveMQBuffer 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).
      Parameters:
      dstIndex - The destination buffer index
      length - the number of bytes to transfer
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified dstIndex is less than 0, if length is greater than this.readableBytes, or if dstIndex + length is greater than dst.capacity
    • readBytes

      void 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).
      Parameters:
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if dst.length is greater than this.readableBytes
    • readBytes

      void 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).
      Parameters:
      dstIndex - The destination bufferIndex
      length - the number of bytes to transfer
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if the specified dstIndex is less than 0, if length is greater than this.readableBytes, or if dstIndex + length is greater than dst.length
    • readBytes

      void readBytes(ByteBuffer dst)
      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.
      Parameters:
      dst - The destination buffer
      Throws:
      IndexOutOfBoundsException - if dst.remaining() is greater than this.readableBytes
    • skipBytes

      int skipBytes(int length)
      Increases the current readerIndex by the specified length in this buffer.
      Specified by:
      skipBytes in interface DataInput
      Parameters:
      length - The number of bytes to skip
      Throws:
      IndexOutOfBoundsException - if length is greater than this.readableBytes
    • writeByte

      void writeByte(byte value)
      Sets the specified byte at the current writerIndex and increases the writerIndex by 1 in this buffer.
      Parameters:
      value - The specified byte
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 1
    • writeShort

      void writeShort(short value)
      Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer.
      Parameters:
      value - The specified 16-bit short integer
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 2
    • writeInt

      void writeInt(int value)
      Sets the specified 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
      Parameters:
      value - The specified 32-bit integer
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 4
    • writeNullableInt

      void writeNullableInt(Integer value)
      Sets the specified (potentially null) 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
      Parameters:
      value - The specified (potentially null) 32-bit integer
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 4
    • writeLong

      void writeLong(long value)
      Sets the specified 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
      Parameters:
      value - The specified 64-bit long integer
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 8
    • writeNullableLong

      void writeNullableLong(Long value)
      Sets the specified (potentially null) 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
      Parameters:
      value - The specified (potentially null) 64-bit long integer
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 8
    • writeChar

      void writeChar(char chr)
      Sets the specified char at the current writerIndex and increases the writerIndex by 2 in this buffer.
      Parameters:
      chr - The specified char
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 2
    • writeFloat

      void writeFloat(float value)
      Sets the specified float at the current writerIndex and increases the writerIndex by 4 in this buffer.
      Parameters:
      value - The specified float
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 4
    • writeDouble

      void writeDouble(double value)
      Sets the specified double at the current writerIndex and increases the writerIndex by 8 in this buffer.
      Parameters:
      value - The specified double
      Throws:
      IndexOutOfBoundsException - if this.writableBytes is less than 8
    • writeBoolean

      void writeBoolean(boolean val)
      Sets the specified boolean at the current writerIndex
      Parameters:
      val - The specified boolean
    • writeNullableBoolean

      void writeNullableBoolean(Boolean val)
      Sets the specified (potentially null) Boolean at the current writerIndex
      Parameters:
      val - The specified boolean
    • writeNullableSimpleString

      void writeNullableSimpleString(SimpleString val)
      Sets the specified SimpleString (potentially null) at the current writerIndex
      Parameters:
      val - The specified SimpleString
    • writeNullableString

      void writeNullableString(String val)
      Sets the specified String (potentially null) at the current writerIndex
      Parameters:
      val - The specified String
    • writeSimpleString

      void writeSimpleString(SimpleString val)
      Sets the specified non-null SimpleString at the current writerIndex
      Parameters:
      val - The specified non-null SimpleString
    • writeString

      void writeString(String val)
      Sets the specified non-null String at the current writerIndex
      Parameters:
      val - The specified non-null String
    • writeUTF

      void writeUTF(String utf)
      Sets the specified UTF-8 String at the current writerIndex
      Parameters:
      utf - The specified UTF-8 String
    • writeBytes

      void writeBytes(ActiveMQBuffer 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). This method is basically same with writeBytes(ActiveMQBuffer, int, int), except that this method increases the readerIndex of the source buffer by the number of the transferred bytes (= length) while writeBytes(ActiveMQBuffer, int, int) does not.
      Parameters:
      length - the number of bytes to transfer
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if length is greater than this.writableBytes or if length is greater then src.readableBytes
    • writeBytes

      void writeBytes(ActiveMQBuffer 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).
      Parameters:
      srcIndex - the first index of the source
      length - the number of bytes to transfer
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if the specified srcIndex is less than 0, if srcIndex + length is greater than src.capacity, or if length is greater than this.writableBytes
    • writeBytes

      void 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).
      Parameters:
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if src.length is greater than this.writableBytes
    • writeBytes

      void 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).
      Parameters:
      srcIndex - the first index of the source
      length - the number of bytes to transfer
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if the specified srcIndex is less than 0, if srcIndex + length is greater than src.length, or if length is greater than this.writableBytes
    • writeBytes

      void writeBytes(ByteBuffer src)
      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.
      Parameters:
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if src.remaining() is greater than this.writableBytes
    • writeBytes

      void writeBytes(io.netty.buffer.ByteBuf src, int srcIndex, int length)
      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.
      Parameters:
      src - The source buffer
      Throws:
      IndexOutOfBoundsException - if src.remaining() is greater than this.writableBytes
    • copy

      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.
      Returns:
      a copy of this buffer's readable bytes.
    • copy

      ActiveMQBuffer copy(int index, int length)
      Returns a copy of this buffer's sub-region. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      length - The number of bytes to copy
      Returns:
      a copy of this buffer's readable bytes.
    • slice

      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.
      Returns:
      a slice of this buffer's readable bytes
    • slice

      ActiveMQBuffer slice(int index, int length)
      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.
      Parameters:
      index - Index into the buffer
      length - The number of bytes
      Returns:
      a slice of this buffer's sub-region.
    • duplicate

      ActiveMQBuffer duplicate()
      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 is identical to buf.slice(0, buf.capacity()). This method does not modify readerIndex or writerIndex of this buffer.
      Returns:
      a buffer which shares the whole region of this buffer.
    • toByteBuffer

      ByteBuffer toByteBuffer()
      Converts this buffer's readable bytes into a NIO buffer. The returned buffer might or might not share the content with this buffer, while they have separate indexes and marks. This method is identical to buf.toByteBuffer(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer.
      Returns:
      A converted NIO ByteBuffer
    • toByteBuffer

      ByteBuffer toByteBuffer(int index, int length)
      Converts this buffer's sub-region into a NIO buffer. The returned buffer might or might not share the content with this buffer, while they have separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.
      Parameters:
      index - Index into the buffer
      length - The number of bytes
      Returns:
      A converted NIO Buffer
    • release

      void release()
      Release any underlying resources held by this buffer