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:
    ActiveMQBuffers
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      io.netty.buffer.ByteBuf byteBuf()
      Returns the underlying Netty's ByteBuf
      int capacity()
      Returns the number of bytes this buffer can contain.
      void clear()
      Sets the readerIndex and writerIndex of this buffer to 0.
      ActiveMQBuffer copy()
      Returns a copy of this buffer's readable bytes.
      ActiveMQBuffer copy​(int index, int length)
      Returns a copy of this buffer's sub-region.
      void discardReadBytes()
      Discards the bytes between the 0th index and readerIndex.
      ActiveMQBuffer duplicate()
      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 markReaderIndex()
      Marks the current readerIndex in this buffer.
      void markWriterIndex()
      Marks the current writerIndex in this buffer.
      boolean readable()  
      int readableBytes()  
      boolean readBoolean()
      Gets a boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
      byte readByte()
      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 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.
      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.
      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 readChar()
      Gets a char at the current readerIndex and increases the readerIndex by 2 in this buffer.
      double readDouble()
      Gets a double at the current readerIndex and increases the readerIndex by 8 in this buffer.
      int readerIndex()  
      void readerIndex​(int readerIndex)
      Sets the readerIndex of this buffer.
      float readFloat()
      Gets a float at the current readerIndex and increases the readerIndex by 4 in this buffer.
      int readInt()
      Gets a 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      long readLong()
      Gets a 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
      Boolean readNullableBoolean()
      Gets a (potentially null) boolean at the current readerIndex and increases the readerIndex by 1 in this buffer.
      Integer readNullableInt()
      Gets a (potentially null) 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      Long readNullableLong()
      Gets a (potentially null) 64-bit integer at the current readerIndex and increases the readerIndex by 8 in this buffer.
      SimpleString readNullableSimpleString()
      Gets a SimpleString (potentially null) at the current readerIndex
      String readNullableString()
      Gets a String (potentially null) at the current readerIndex
      short readShort()
      Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      SimpleString readSimpleString()
      Gets a non-null SimpleString at the current readerIndex
      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).
      String readString()
      Gets a non-null String at the current readerIndex
      int readUnsignedByte()
      Gets an unsigned byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
      long readUnsignedInt()
      Gets an unsigned 32-bit integer at the current readerIndex and increases the readerIndex by 4 in this buffer.
      int readUnsignedShort()
      Gets an unsigned 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      String readUTF()
      Gets a UTF-8 String at the current readerIndex
      void release()
      Release any underlying resources held by this buffer
      void resetReaderIndex()
      Repositions the current readerIndex to the marked readerIndex in this buffer.
      void resetWriterIndex()
      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.
      ActiveMQBuffer slice()
      Returns a slice of this buffer's readable bytes.
      ActiveMQBuffer slice​(int index, int length)
      Returns a slice of this buffer's sub-region.
      ByteBuffer toByteBuffer()
      Converts this buffer's readable bytes into a NIO buffer.
      ByteBuffer toByteBuffer​(int index, int length)
      Converts this buffer's sub-region into a NIO buffer.
      boolean writable()  
      int writableBytes()  
      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 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.
      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 writeNullableBoolean​(Boolean val)
      Sets the specified (potentially null) Boolean at the current writerIndex
      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.
      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.
      void writeNullableSimpleString​(SimpleString val)
      Sets the specified SimpleString (potentially null) at the current writerIndex
      void writeNullableString​(String val)
      Sets the specified String (potentially null) at the current writerIndex
      int writerIndex()  
      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 writeSimpleString​(SimpleString val)
      Sets the specified non-null SimpleString at the current writerIndex
      void writeString​(String val)
      Sets the specified non-null String at the current writerIndex
      void writeUTF​(String utf)
      Sets the specified UTF-8 String at the current writerIndex
    • Method Detail

      • 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

        ActiveMQBuffer 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

        ActiveMQBuffer 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