Class ProtonAbstractBuffer

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected ProtonAbstractBuffer​(int maximumCapacity)  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void adjustIndexMarks​(int decrement)  
      protected void checkDestinationIndex​(int index, int length, int dstIndex, int dstCapacity)  
      protected void checkIndex​(int index, int fieldLength)  
      protected void checkNewCapacity​(int newCapacity)  
      protected void checkReadableBytes​(int minimumReadableBytes)  
      protected void checkSourceIndex​(int index, int length, int srcIndex, int srcCapacity)  
      ProtonBuffer clear()
      Reset the read and write offsets to zero and clears the position markers if set previously, this method is not required to reset the data previously written to this buffer.
      int compareTo​(ProtonBuffer other)
      Compares the remaining content of the current buffer with the remaining content of the given buffer, which must not be null.
      ProtonBuffer copy()
      Create a deep copy of the readable bytes of this ProtonBuffer, the returned buffer can be modified without affecting the contents or position markers of this instance.
      abstract ProtonBuffer copy​(int index, int length)
      Returns a copy of this buffer's sub-region.
      ProtonBuffer duplicate()
      Create a duplicate of this ProtonBuffer instance that shares the same backing data store and but maintains separate position index values.
      ProtonBuffer ensureWritable​(int minWritableBytes)
      Ensures that the requested number of bytes is available for write operations in the current buffer, growing the buffer if needed to meet the requested writable capacity.
      boolean equals​(Object other)  
      boolean getBoolean​(int index)
      Gets a boolean from the specified index, this method will not modify the read or write index.
      ProtonBuffer getBytes​(int index, byte[] target)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      ProtonBuffer getBytes​(int index, ProtonBuffer target)
      Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination becomes non-writable.
      ProtonBuffer getBytes​(int index, ProtonBuffer target, int length)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      char getChar​(int index)
      Gets a 2-byte char from the specified index, this method will not modify the read or write index.
      double getDouble​(int index)
      Gets a double from the specified index, this method will not modify the read or write index.
      float getFloat​(int index)
      Gets a float from the specified index, this method will not modify the read or write index.
      int getMaxWritableBytes()
      Gets the current maximum number of bytes that can be written to this buffer.
      int getReadableBytes()  
      int getReadIndex()  
      short getUnsignedByte​(int index)
      Gets a unsigned byte from the specified index, this method will not modify the read or write index.
      long getUnsignedInt​(int index)
      Gets a unsigned int from the specified index, this method will not modify the read or write index.
      int getUnsignedShort​(int index)
      Gets a unsigned short from the specified index, this method will not modify the read or write index.
      int getWritableBytes()  
      int getWriteIndex()  
      int hashCode()  
      protected static boolean isOutOfBounds​(int index, int length, int capacity)  
      boolean isReadable()  
      boolean isReadable​(int numBytes)
      Check if the given number of bytes can be read from the buffer.
      boolean isWritable()  
      boolean isWritable​(int numBytes)
      Check if the requested number of bytes can be written into this buffer.
      ProtonBuffer markReadIndex()
      Marks the current read index so that it can later be restored by a call to ProtonBuffer.resetReadIndex(), the initial mark value is 0.
      ProtonBuffer markWriteIndex()
      Marks the current write index so that it can later be restored by a call to ProtonBuffer.resetWriteIndex(), the initial mark value is 0.
      int maxCapacity()
      Returns the number of bytes that this buffer is allowed to grow to when write operations exceed the current capacity value.
      boolean readBoolean()
      Reads a boolean value from the buffer and advances the read index by one.
      byte readByte()
      Reads one byte from the buffer and advances the read index by one.
      ProtonBuffer readBytes​(byte[] target)
      Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the value of the length of the destination array.
      ProtonBuffer readBytes​(byte[] target, int length)
      Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed.
      ProtonBuffer readBytes​(byte[] target, int offset, int length)
      Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed, the bytes are read into the given buffer starting from the given offset value.
      ProtonBuffer readBytes​(ByteBuffer dst)
      Transfers this buffer's data to the specified destination starting at the current readIndex until the destination's position reaches its limit, and increases the readIndex by the number of the transferred bytes.
      ProtonBuffer readBytes​(ProtonBuffer target)
      Reads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the value of the number of bytes written to the target.
      ProtonBuffer readBytes​(ProtonBuffer target, int length)
      Reads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the number of bytes written.
      ProtonBuffer readBytes​(ProtonBuffer target, int offset, int length)
      Transfers this buffer's data to the specified destination starting at the current readIndex and increases the readIndex by the number of the transferred bytes (= length).
      double readDouble()
      Reads a double value from the buffer and advances the read index by eight.
      float readFloat()
      Reads a float value from the buffer and advances the read index by four.
      int readInt()
      Reads a integer value from the buffer and advances the read index by four.
      long readLong()
      Reads a long value from the buffer and advances the read index by eight.
      short readShort()
      Reads a short value from the buffer and advances the read index by two.
      ProtonBuffer resetReadIndex()
      Resets the current read index to the previously marked value.
      ProtonBuffer resetWriteIndex()
      Resets the current write index to the previously marked value.
      ProtonBuffer setBoolean​(int index, boolean value)
      Sets the boolean value at the given write index in this buffer's backing data store.
      ProtonBuffer setBytes​(int index, byte[] src)
      Transfers the specified source array's data to this buffer starting at the specified absolute index.
      ProtonBuffer setBytes​(int index, ProtonBuffer source)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer becomes unreadable.
      ProtonBuffer setBytes​(int index, ProtonBuffer source, int length)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
      ProtonBuffer setChar​(int index, int value)
      Sets the char value at the given write index in this buffer's backing data store.
      ProtonBuffer setDouble​(int index, double value)
      Sets the double value at the given write index in this buffer's backing data store.
      ProtonBuffer setFloat​(int index, float value)
      Sets the float value at the given write index in this buffer's backing data store.
      ProtonBuffer setIndex​(int readIndex, int writeIndex)
      Used to set the read index and the write index in one call.
      ProtonBuffer setReadIndex​(int value)
      Sets the read index for this buffer.
      ProtonBuffer setWriteIndex​(int value)
      Sets the write index for this buffer.
      ProtonBuffer skipBytes​(int length)
      Increases the current readIndex of this buffer by the specified length.
      ProtonBuffer slice()
      Create a new ProtonBuffer whose contents are a subsequence of the contents of this ProtonBuffer.
      ProtonBuffer slice​(int index, int length)
      Create a new ProtonBuffer whose contents are a subsequence of the contents of this ProtonBuffer.
      ByteBuffer toByteBuffer()
      Returns a ByteBuffer that represents the readable bytes contained in this buffer.
      abstract ByteBuffer toByteBuffer​(int index, int length)
      Returns a ByteBuffer that represents the given span of bytes from the readable portion of this buffer.
      String toString()  
      String toString​(Charset charset)
      Returns a String created from the buffer's underlying bytes using the specified Charset for the newly created String.
      ProtonBuffer writeBoolean​(boolean value)
      Writes a single boolean to the buffer and advances the write index by one.
      ProtonBuffer writeByte​(int value)
      Writes a single byte to the buffer and advances the write index by one.
      ProtonBuffer writeBytes​(byte[] source)
      Writes the contents of the given byte array into the buffer and advances the write index by the length of the given array.
      ProtonBuffer writeBytes​(byte[] source, int length)
      Writes the contents of the given byte array into the buffer and advances the write index by the length value given.
      ProtonBuffer writeBytes​(byte[] source, int offset, int length)
      Writes the contents of the given byte array into the buffer and advances the write index by the length value given.
      ProtonBuffer writeBytes​(ByteBuffer source)
      Transfers the specified source buffer's data to this buffer starting at the current writeIndex until the source buffer's position reaches its limit, and increases the writeIndex by the number of the transferred bytes.
      ProtonBuffer writeBytes​(ProtonBuffer source)
      Transfers the specified source buffer's data to this buffer starting at the current writeIndex until the source buffer becomes unreadable, and increases the writeIndex by the number of the transferred bytes.
      ProtonBuffer writeBytes​(ProtonBuffer source, int length)
      Transfers the specified source buffer's data to this buffer starting at the current writeIndex and increases the writeIndex by the number of the transferred bytes (= length).
      ProtonBuffer writeBytes​(ProtonBuffer source, int offset, int length)
      Transfers the specified source buffer's data to this buffer starting at the current writeIndex and increases the writeIndex by the number of the transferred bytes (= length).
      ProtonBuffer writeDouble​(double value)
      Writes a single double to the buffer and advances the write index by eight.
      ProtonBuffer writeFloat​(float value)
      Writes a single float to the buffer and advances the write index by four.
      ProtonBuffer writeInt​(int value)
      Writes a single integer to the buffer and advances the write index by four.
      ProtonBuffer writeLong​(long value)
      Writes a single long to the buffer and advances the write index by eight.
      ProtonBuffer writeShort​(short value)
      Writes a single short to the buffer and advances the write index by two.
    • Field Detail

      • readIndex

        protected int readIndex
      • writeIndex

        protected int writeIndex
      • markedReadIndex

        protected int markedReadIndex
      • markedWriteIndex

        protected int markedWriteIndex
    • Constructor Detail

      • ProtonAbstractBuffer

        protected ProtonAbstractBuffer​(int maximumCapacity)
    • Method Detail

      • maxCapacity

        public int maxCapacity()
        Description copied from interface: ProtonBuffer
        Returns the number of bytes that this buffer is allowed to grow to when write operations exceed the current capacity value.
        Specified by:
        maxCapacity in interface ProtonBuffer
        Returns:
        the number of bytes this buffer is allowed to grow to.
      • getReadableBytes

        public int getReadableBytes()
        Specified by:
        getReadableBytes in interface ProtonBuffer
        Returns:
        the number of bytes available for reading from this buffer.
      • getWritableBytes

        public int getWritableBytes()
        Specified by:
        getWritableBytes in interface ProtonBuffer
        Returns:
        the number of bytes that can be written to this buffer before the limit is hit.
      • getMaxWritableBytes

        public int getMaxWritableBytes()
        Description copied from interface: ProtonBuffer
        Gets the current maximum number of bytes that can be written to this buffer. This is the same value that can be computed by subtracting the current write index from the maximum buffer capacity.
        Specified by:
        getMaxWritableBytes in interface ProtonBuffer
        Returns:
        the maximum number of bytes that can be written to this buffer before the limit is hit.
      • getReadIndex

        public int getReadIndex()
        Specified by:
        getReadIndex in interface ProtonBuffer
        Returns:
        the current value of the read index for this buffer.
      • setReadIndex

        public ProtonBuffer setReadIndex​(int value)
        Description copied from interface: ProtonBuffer
        Sets the read index for this buffer.
        Specified by:
        setReadIndex in interface ProtonBuffer
        Parameters:
        value - The index into the buffer where the read index should be positioned.
        Returns:
        this buffer for use in chaining.
      • getWriteIndex

        public int getWriteIndex()
        Specified by:
        getWriteIndex in interface ProtonBuffer
        Returns:
        the current value of the write index for this buffer.
      • setWriteIndex

        public ProtonBuffer setWriteIndex​(int value)
        Description copied from interface: ProtonBuffer
        Sets the write index for this buffer.
        Specified by:
        setWriteIndex in interface ProtonBuffer
        Parameters:
        value - The index into the buffer where the write index should be positioned.
        Returns:
        this buffer for use in chaining.
      • setIndex

        public ProtonBuffer setIndex​(int readIndex,
                                     int writeIndex)
        Description copied from interface: ProtonBuffer
        Used to set the read index and the write index in one call. This methods allows for an update to the read index and write index to values that could not be set using simple setReadIndex and setWriteIndex call where the values would violate the constraints placed on them by the value of the other index.
        Specified by:
        setIndex in interface ProtonBuffer
        Parameters:
        readIndex - The new read index to assign to this buffer.
        writeIndex - The new write index to assign to this buffer.
        Returns:
        this buffer for use in chaining.
      • resetReadIndex

        public ProtonBuffer resetReadIndex()
        Description copied from interface: ProtonBuffer
        Resets the current read index to the previously marked value.
        Specified by:
        resetReadIndex in interface ProtonBuffer
        Returns:
        this buffer for use in chaining.
      • resetWriteIndex

        public ProtonBuffer resetWriteIndex()
        Description copied from interface: ProtonBuffer
        Resets the current write index to the previously marked value.
        Specified by:
        resetWriteIndex in interface ProtonBuffer
        Returns:
        this buffer for use in chaining.
      • isReadable

        public boolean isReadable()
        Specified by:
        isReadable in interface ProtonBuffer
        Returns:
        true if the read index is less than the write index.
      • isReadable

        public boolean isReadable​(int numBytes)
        Description copied from interface: ProtonBuffer
        Check if the given number of bytes can be read from the buffer.
        Specified by:
        isReadable in interface ProtonBuffer
        Parameters:
        numBytes - the size that is desired in readable bytes
        Returns:
        true if the buffer has at least the given number of readable bytes remaining.
      • isWritable

        public boolean isWritable()
        Specified by:
        isWritable in interface ProtonBuffer
        Returns:
        true if the buffer has bytes remaining between the write index and the capacity.
      • isWritable

        public boolean isWritable​(int numBytes)
        Description copied from interface: ProtonBuffer
        Check if the requested number of bytes can be written into this buffer.
        Specified by:
        isWritable in interface ProtonBuffer
        Parameters:
        numBytes - The number writable bytes that is being checked in this buffer.
        Returns:
        true if the buffer has space left for the given number of bytes to be written.
      • clear

        public ProtonBuffer clear()
        Description copied from interface: ProtonBuffer
        Reset the read and write offsets to zero and clears the position markers if set previously, this method is not required to reset the data previously written to this buffer.
        Specified by:
        clear in interface ProtonBuffer
        Returns:
        this buffer for using in call chaining.
      • skipBytes

        public ProtonBuffer skipBytes​(int length)
        Description copied from interface: ProtonBuffer
        Increases the current readIndex of this buffer by the specified length.
        Specified by:
        skipBytes in interface ProtonBuffer
        Parameters:
        length - the number of bytes in this buffer to skip.
        Returns:
        this ProtonBuffer for chaining.
      • slice

        public ProtonBuffer slice()
        Description copied from interface: ProtonBuffer
        Create a new ProtonBuffer whose contents are a subsequence of the contents of this ProtonBuffer.

        The starting point of the new buffer starts at this buffer's current position, the marks and limits of the new buffer will be independent of this buffer however changes to the data backing the buffer will be visible in this buffer.

        Specified by:
        slice in interface ProtonBuffer
        Returns:
        a new ProtonBuffer whose contents are a subsequence of this buffer.
      • slice

        public ProtonBuffer slice​(int index,
                                  int length)
        Description copied from interface: ProtonBuffer
        Create a new ProtonBuffer whose contents are a subsequence of the contents of this ProtonBuffer.

        The starting point of the new buffer starts at given index into this buffer and spans the number of bytes given by the length. Changes to the contents of this buffer or to the produced slice buffer are visible in the other.

        Specified by:
        slice in interface ProtonBuffer
        Parameters:
        index - The index in this buffer where the slice should begin.
        length - The number of bytes to make visible to the new buffer from this one.
        Returns:
        a new ProtonBuffer whose contents are a subsequence of this buffer.
      • duplicate

        public ProtonBuffer duplicate()
        Description copied from interface: ProtonBuffer
        Create a duplicate of this ProtonBuffer instance that shares the same backing data store and but maintains separate position index values. Changes to one buffer are visible in any of its duplicates. This method does not copy the read or write markers to the new buffer instance.
        Specified by:
        duplicate in interface ProtonBuffer
        Returns:
        a new ProtonBuffer instance that shares the backing data as this one.
      • copy

        public ProtonBuffer copy()
        Description copied from interface: ProtonBuffer
        Create a deep copy of the readable bytes of this ProtonBuffer, the returned buffer can be modified without affecting the contents or position markers of this instance.
        Specified by:
        copy in interface ProtonBuffer
        Returns:
        a deep copy of this ProtonBuffer instance.
      • copy

        public abstract ProtonBuffer copy​(int index,
                                          int length)
        Description copied from interface: ProtonBuffer
        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 the value returned from ProtonBuffer.getReadIndex() or ProtonBuffer.getWriteIndex() of this buffer.
        Specified by:
        copy in interface ProtonBuffer
        Parameters:
        index - The index in this buffer where the copy should begin
        length - The number of bytes to copy to the new buffer from this one.
        Returns:
        a new ProtonBuffer instance containing the copied bytes.
      • toByteBuffer

        public ByteBuffer toByteBuffer()
        Description copied from interface: ProtonBuffer
        Returns a ByteBuffer that represents the readable bytes contained in this buffer.

        This method should attempt to return a ByteBuffer that shares the backing data store with this buffer however if that is not possible it is permitted that the returned ByteBuffer contain a copy of the readable bytes of this ProtonBuffer.

        Specified by:
        toByteBuffer in interface ProtonBuffer
        Returns:
        a ByteBuffer that represents the readable bytes of this buffer.
      • toByteBuffer

        public abstract ByteBuffer toByteBuffer​(int index,
                                                int length)
        Description copied from interface: ProtonBuffer
        Returns a ByteBuffer that represents the given span of bytes from the readable portion of this buffer.

        This method should attempt to return a ByteBuffer that shares the backing data store with this buffer however if that is not possible it is permitted that the returned ByteBuffer contain a copy of the readable bytes of this ProtonBuffer.

        Specified by:
        toByteBuffer in interface ProtonBuffer
        Parameters:
        index - The starting index in this where the ByteBuffer view should begin.
        length - The number of bytes to include in the ByteBuffer view.
        Returns:
        a ByteBuffer that represents the given view of this buffers readable bytes.
      • ensureWritable

        public ProtonBuffer ensureWritable​(int minWritableBytes)
        Description copied from interface: ProtonBuffer
        Ensures that the requested number of bytes is available for write operations in the current buffer, growing the buffer if needed to meet the requested writable capacity. This method will not alter the write offset but may change the value returned from the capacity method if new buffer space is allocated.
        Specified by:
        ensureWritable in interface ProtonBuffer
        Parameters:
        minWritableBytes - The number of bytes beyond the current write index needed.
        Returns:
        this buffer for using in call chaining.
      • readByte

        public byte readByte()
        Description copied from interface: ProtonBuffer
        Reads one byte from the buffer and advances the read index by one.
        Specified by:
        readByte in interface ProtonBuffer
        Returns:
        a single byte from the ProtonBuffer.
      • readBoolean

        public boolean readBoolean()
        Description copied from interface: ProtonBuffer
        Reads a boolean value from the buffer and advances the read index by one.
        Specified by:
        readBoolean in interface ProtonBuffer
        Returns:
        boolean value read from the buffer.
      • readShort

        public short readShort()
        Description copied from interface: ProtonBuffer
        Reads a short value from the buffer and advances the read index by two.
        Specified by:
        readShort in interface ProtonBuffer
        Returns:
        short value read from the buffer.
      • readInt

        public int readInt()
        Description copied from interface: ProtonBuffer
        Reads a integer value from the buffer and advances the read index by four.
        Specified by:
        readInt in interface ProtonBuffer
        Returns:
        integer value read from the buffer.
      • readLong

        public long readLong()
        Description copied from interface: ProtonBuffer
        Reads a long value from the buffer and advances the read index by eight.
        Specified by:
        readLong in interface ProtonBuffer
        Returns:
        long value read from the buffer.
      • readFloat

        public float readFloat()
        Description copied from interface: ProtonBuffer
        Reads a float value from the buffer and advances the read index by four.
        Specified by:
        readFloat in interface ProtonBuffer
        Returns:
        float value read from the buffer.
      • readDouble

        public double readDouble()
        Description copied from interface: ProtonBuffer
        Reads a double value from the buffer and advances the read index by eight.
        Specified by:
        readDouble in interface ProtonBuffer
        Returns:
        double value read from the buffer.
      • readBytes

        public ProtonBuffer readBytes​(byte[] target)
        Description copied from interface: ProtonBuffer
        Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the value of the length of the destination array.
        Specified by:
        readBytes in interface ProtonBuffer
        Parameters:
        target - The byte array to write into.
        Returns:
        this ProtonBuffer for chaining.
      • readBytes

        public ProtonBuffer readBytes​(byte[] target,
                                      int length)
        Description copied from interface: ProtonBuffer
        Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed.
        Specified by:
        readBytes in interface ProtonBuffer
        Parameters:
        target - The byte array to write into.
        length - The number of bytes to read into the given array.
        Returns:
        this ProtonBuffer for chaining.
      • readBytes

        public ProtonBuffer readBytes​(byte[] target,
                                      int offset,
                                      int length)
        Description copied from interface: ProtonBuffer
        Reads bytes from this buffer and writes them into the destination byte array incrementing the read index by the length value passed, the bytes are read into the given buffer starting from the given offset value.
        Specified by:
        readBytes in interface ProtonBuffer
        Parameters:
        target - The byte array to write into.
        offset - The offset into the given array where bytes are written.
        length - The number of bytes to read into the given array.
        Returns:
        this ProtonBuffer for chaining.
      • readBytes

        public ProtonBuffer readBytes​(ProtonBuffer target)
        Description copied from interface: ProtonBuffer
        Reads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the value of the number of bytes written to the target. The number of bytes written will be the equal to the writable bytes of the target buffer. The write index of the target buffer will be incremented by the number of bytes written into it.
        Specified by:
        readBytes in interface ProtonBuffer
        Parameters:
        target - The ProtonBuffer to write into.
        Returns:
        this ProtonBuffer for chaining.
      • readBytes

        public ProtonBuffer readBytes​(ProtonBuffer target,
                                      int length)
        Description copied from interface: ProtonBuffer
        Reads bytes from this buffer and writes them into the destination ProtonBuffer incrementing the read index by the number of bytes written. The write index of the target buffer will be incremented by the number of bytes written into it.
        Specified by:
        readBytes in interface ProtonBuffer
        Parameters:
        target - The ProtonBuffer to write into.
        length - The number of bytes to read into the given buffer.
        Returns:
        this ProtonBuffer for chaining.
      • readBytes

        public ProtonBuffer readBytes​(ProtonBuffer target,
                                      int offset,
                                      int length)
        Description copied from interface: ProtonBuffer
        Transfers this buffer's data to the specified destination starting at the current readIndex and increases the readIndex by the number of the transferred bytes (= length). This method does not modify the write index of the target buffer.
        Specified by:
        readBytes in interface ProtonBuffer
        Parameters:
        target - The ProtonBuffer to write into.
        offset - The offset into the given buffer where bytes are written.
        length - The number of bytes to read into the given buffer.
        Returns:
        this ProtonBuffer for chaining.
      • readBytes

        public ProtonBuffer readBytes​(ByteBuffer dst)
        Description copied from interface: ProtonBuffer
        Transfers this buffer's data to the specified destination starting at the current readIndex until the destination's position reaches its limit, and increases the readIndex by the number of the transferred bytes.
        Specified by:
        readBytes in interface ProtonBuffer
        Parameters:
        dst - The target ByteBuffer to write into.
        Returns:
        this ProtonBuffer for chaining.
      • writeByte

        public ProtonBuffer writeByte​(int value)
        Description copied from interface: ProtonBuffer
        Writes a single byte to the buffer and advances the write index by one.
        Specified by:
        writeByte in interface ProtonBuffer
        Parameters:
        value - The byte to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeBoolean

        public ProtonBuffer writeBoolean​(boolean value)
        Description copied from interface: ProtonBuffer
        Writes a single boolean to the buffer and advances the write index by one.
        Specified by:
        writeBoolean in interface ProtonBuffer
        Parameters:
        value - The boolean to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeShort

        public ProtonBuffer writeShort​(short value)
        Description copied from interface: ProtonBuffer
        Writes a single short to the buffer and advances the write index by two.
        Specified by:
        writeShort in interface ProtonBuffer
        Parameters:
        value - The short to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeInt

        public ProtonBuffer writeInt​(int value)
        Description copied from interface: ProtonBuffer
        Writes a single integer to the buffer and advances the write index by four.
        Specified by:
        writeInt in interface ProtonBuffer
        Parameters:
        value - The integer to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeLong

        public ProtonBuffer writeLong​(long value)
        Description copied from interface: ProtonBuffer
        Writes a single long to the buffer and advances the write index by eight.
        Specified by:
        writeLong in interface ProtonBuffer
        Parameters:
        value - The long to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeFloat

        public ProtonBuffer writeFloat​(float value)
        Description copied from interface: ProtonBuffer
        Writes a single float to the buffer and advances the write index by four.
        Specified by:
        writeFloat in interface ProtonBuffer
        Parameters:
        value - The float to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeDouble

        public ProtonBuffer writeDouble​(double value)
        Description copied from interface: ProtonBuffer
        Writes a single double to the buffer and advances the write index by eight.
        Specified by:
        writeDouble in interface ProtonBuffer
        Parameters:
        value - The double to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeBytes

        public ProtonBuffer writeBytes​(byte[] source)
        Description copied from interface: ProtonBuffer
        Writes the contents of the given byte array into the buffer and advances the write index by the length of the given array.
        Specified by:
        writeBytes in interface ProtonBuffer
        Parameters:
        source - The byte array to write into the buffer.
        Returns:
        this ProtonBuffer for chaining.
      • writeBytes

        public ProtonBuffer writeBytes​(byte[] source,
                                       int length)
        Description copied from interface: ProtonBuffer
        Writes the contents of the given byte array into the buffer and advances the write index by the length value given.
        Specified by:
        writeBytes in interface ProtonBuffer
        Parameters:
        source - The byte array to write into the buffer.
        length - The number of bytes to write from the given array into this buffer
        Returns:
        this ProtonBuffer for chaining.
      • writeBytes

        public ProtonBuffer writeBytes​(byte[] source,
                                       int offset,
                                       int length)
        Description copied from interface: ProtonBuffer
        Writes the contents of the given byte array into the buffer and advances the write index by the length value given. The bytes written into this buffer are read starting at the given offset into the passed in byte array.
        Specified by:
        writeBytes in interface ProtonBuffer
        Parameters:
        source - The byte array to write into the buffer.
        offset - The offset into the given array to start reading from.
        length - The number of bytes to write from the given array into this buffer
        Returns:
        this ProtonBuffer for chaining.
      • writeBytes

        public ProtonBuffer writeBytes​(ProtonBuffer source,
                                       int length)
        Description copied from interface: ProtonBuffer
        Transfers the specified source buffer's data to this buffer starting at the current writeIndex and increases the writeIndex by the number of the transferred bytes (= length). This method is basically same with ProtonBuffer.writeBytes(ProtonBuffer, int, int), except that this method increases the readIndex of the source buffer by the number of the transferred bytes (= length) while ProtonBuffer.writeBytes(ProtonBuffer, int, int) does not.
        Specified by:
        writeBytes in interface ProtonBuffer
        Parameters:
        source - The source buffer from which the bytes are read.
        length - The number of bytes to transfer
        Returns:
        this buffer for chaining
      • writeBytes

        public ProtonBuffer writeBytes​(ProtonBuffer source,
                                       int offset,
                                       int length)
        Description copied from interface: ProtonBuffer
        Transfers the specified source buffer's data to this buffer starting at the current writeIndex and increases the writeIndex by the number of the transferred bytes (= length). This method does not modify the read index of the source buffer.
        Specified by:
        writeBytes in interface ProtonBuffer
        Parameters:
        source - The source buffer from which the bytes are read.
        offset - The offset in the source buffer to start writing into this buffer.
        length - The number of bytes to transfer
        Returns:
        this buffer for chaining
      • writeBytes

        public ProtonBuffer writeBytes​(ByteBuffer source)
        Description copied from interface: ProtonBuffer
        Transfers the specified source buffer's data to this buffer starting at the current writeIndex until the source buffer's position reaches its limit, and increases the writeIndex by the number of the transferred bytes.
        Specified by:
        writeBytes in interface ProtonBuffer
        Parameters:
        source - The source buffer from which the bytes are read.
        Returns:
        this buffer for chaining
      • getBoolean

        public boolean getBoolean​(int index)
        Description copied from interface: ProtonBuffer
        Gets a boolean from the specified index, this method will not modify the read or write index.
        Specified by:
        getBoolean in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        Returns:
        the value read from the given index.
      • getUnsignedByte

        public short getUnsignedByte​(int index)
        Description copied from interface: ProtonBuffer
        Gets a unsigned byte from the specified index, this method will not modify the read or write index.
        Specified by:
        getUnsignedByte in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        Returns:
        the value read from the given index.
      • getUnsignedShort

        public int getUnsignedShort​(int index)
        Description copied from interface: ProtonBuffer
        Gets a unsigned short from the specified index, this method will not modify the read or write index.
        Specified by:
        getUnsignedShort in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        Returns:
        the value read from the given index.
      • getUnsignedInt

        public long getUnsignedInt​(int index)
        Description copied from interface: ProtonBuffer
        Gets a unsigned int from the specified index, this method will not modify the read or write index.
        Specified by:
        getUnsignedInt in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        Returns:
        the value read from the given index.
      • getChar

        public char getChar​(int index)
        Description copied from interface: ProtonBuffer
        Gets a 2-byte char from the specified index, this method will not modify the read or write index.
        Specified by:
        getChar in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        Returns:
        the value read from the given index.
      • getFloat

        public float getFloat​(int index)
        Description copied from interface: ProtonBuffer
        Gets a float from the specified index, this method will not modify the read or write index.
        Specified by:
        getFloat in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        Returns:
        the value read from the given index.
      • getDouble

        public double getDouble​(int index)
        Description copied from interface: ProtonBuffer
        Gets a double from the specified index, this method will not modify the read or write index.
        Specified by:
        getDouble in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        Returns:
        the value read from the given index.
      • getBytes

        public ProtonBuffer getBytes​(int index,
                                     byte[] target)
        Description copied from interface: ProtonBuffer
        Transfers this buffer's data to the specified destination starting at the specified absolute index. This method does not modify readIndex or writeIndex of this buffer
        Specified by:
        getBytes in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        target - The buffer where the bytes read will be written to
        Returns:
        this buffer for chaining
      • getBytes

        public ProtonBuffer getBytes​(int index,
                                     ProtonBuffer target)
        Description copied from interface: ProtonBuffer
        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 ProtonBuffer.getBytes(int, ProtonBuffer, int, int), except that this method increases the writeIndex of the destination by the number of the transferred bytes while ProtonBuffer.getBytes(int, ProtonBuffer, int, int) does not. This method does not modify readIndex or writeIndex of the source buffer (i.e. this).
        Specified by:
        getBytes in interface ProtonBuffer
        Parameters:
        index - The index into the buffer where the value should be read.
        target - the destination buffer for the bytes to be read
        Returns:
        this buffer for chaining
      • getBytes

        public ProtonBuffer getBytes​(int index,
                                     ProtonBuffer target,
                                     int length)
        Description copied from interface: ProtonBuffer
        Transfers this buffer's data to the specified destination starting at the specified absolute index. This method is basically same with ProtonBuffer.getBytes(int, ProtonBuffer, int, int), except that this method increases the writeIndex of the destination by the number of the transferred bytes while ProtonBuffer.getBytes(int, ProtonBuffer, int, int) does not. This method does not modify readIndex or writeIndex of the source buffer (i.e. this).
        Specified by:
        getBytes in interface ProtonBuffer
        Parameters:
        index - the index in the buffer to start the read from
        target - the destination buffer for the bytes to be read
        length - the number of bytes to transfer
        Returns:
        this buffer for chaining
      • setBoolean

        public ProtonBuffer setBoolean​(int index,
                                       boolean value)
        Description copied from interface: ProtonBuffer
        Sets the boolean value at the given write index in this buffer's backing data store.
        Specified by:
        setBoolean in interface ProtonBuffer
        Parameters:
        index - The index to start the write from.
        value - The value to write at the given index.
        Returns:
        a reference to this ProtonBuffer for chaining.
      • setChar

        public ProtonBuffer setChar​(int index,
                                    int value)
        Description copied from interface: ProtonBuffer
        Sets the char value at the given write index in this buffer's backing data store.
        Specified by:
        setChar in interface ProtonBuffer
        Parameters:
        index - The index to start the write from.
        value - The value to write at the given index.
        Returns:
        a reference to this ProtonBuffer for chaining.
      • setFloat

        public ProtonBuffer setFloat​(int index,
                                     float value)
        Description copied from interface: ProtonBuffer
        Sets the float value at the given write index in this buffer's backing data store.
        Specified by:
        setFloat in interface ProtonBuffer
        Parameters:
        index - The index to start the write from.
        value - The value to write at the given index.
        Returns:
        a reference to this ProtonBuffer for chaining.
      • setDouble

        public ProtonBuffer setDouble​(int index,
                                      double value)
        Description copied from interface: ProtonBuffer
        Sets the double value at the given write index in this buffer's backing data store.
        Specified by:
        setDouble in interface ProtonBuffer
        Parameters:
        index - The index to start the write from.
        value - The value to write at the given index.
        Returns:
        a reference to this ProtonBuffer for chaining.
      • setBytes

        public ProtonBuffer setBytes​(int index,
                                     byte[] src)
        Description copied from interface: ProtonBuffer
        Transfers the specified source array's data to this buffer starting at the specified absolute index. This method does not modify readIndex or writeIndex of this buffer.
        Specified by:
        setBytes in interface ProtonBuffer
        Parameters:
        index - The index in this buffer where the write operation starts.
        src - The source buffer from which the bytes are read.
        Returns:
        this buffer for chaining
      • setBytes

        public ProtonBuffer setBytes​(int index,
                                     ProtonBuffer source)
        Description copied from interface: ProtonBuffer
        Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer becomes unreadable. This method is basically same with ProtonBuffer.setBytes(int, ProtonBuffer, int, int), except that this method increases the readIndex of the source buffer by the number of the transferred bytes while ProtonBuffer.setBytes(int, ProtonBuffer, int, int) does not. This method does not modify readIndex or writeIndex of the source buffer (i.e. this).
        Specified by:
        setBytes in interface ProtonBuffer
        Parameters:
        index - The index in this buffer where the write operation starts.
        source - The source buffer from which the bytes are read.
        Returns:
        this buffer for chaining
      • setBytes

        public ProtonBuffer setBytes​(int index,
                                     ProtonBuffer source,
                                     int length)
        Description copied from interface: ProtonBuffer
        Transfers the specified source buffer's data to this buffer starting at the specified absolute index. This method is basically same with ProtonBuffer.setBytes(int, ProtonBuffer, int, int), except that this method increases the readIndex of the source buffer by the number of the transferred bytes while ProtonBuffer.setBytes(int, ProtonBuffer, int, int) does not. This method does not modify readIndex or writeIndex of the source buffer (i.e. this).
        Specified by:
        setBytes in interface ProtonBuffer
        Parameters:
        index - The index in this buffer where the write operation starts.
        source - The source buffer from which the bytes are read.
        length - The number of bytes to transfer
        Returns:
        this buffer for chaining
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • compareTo

        public int compareTo​(ProtonBuffer other)
        Description copied from interface: ProtonBuffer
        Compares the remaining content of the current buffer with the remaining content of the given buffer, which must not be null. Each byte is compared in turn as an unsigned value, returning upon the first difference. If no difference is found before the end of one buffer, the shorter buffer is considered less than the other, or else if the same length then they are considered equal.
        Specified by:
        compareTo in interface Comparable<ProtonBuffer>
        Specified by:
        compareTo in interface ProtonBuffer
        Returns:
        a negative, zero, or positive integer when this buffer is less than, equal to, or greater than the given buffer.
        See Also:
        Comparable.compareTo(Object)
      • toString

        public String toString​(Charset charset)
        Description copied from interface: ProtonBuffer
        Returns a String created from the buffer's underlying bytes using the specified Charset for the newly created String.
        Specified by:
        toString in interface ProtonBuffer
        Parameters:
        charset - the Charset to use to construct the new string.
        Returns:
        a string created from the buffer's underlying bytes using the given Charset.
      • checkNewCapacity

        protected final void checkNewCapacity​(int newCapacity)
      • isOutOfBounds

        protected static boolean isOutOfBounds​(int index,
                                               int length,
                                               int capacity)
      • checkIndex

        protected final void checkIndex​(int index,
                                        int fieldLength)
      • checkSourceIndex

        protected final void checkSourceIndex​(int index,
                                              int length,
                                              int srcIndex,
                                              int srcCapacity)
      • checkDestinationIndex

        protected final void checkDestinationIndex​(int index,
                                                   int length,
                                                   int dstIndex,
                                                   int dstCapacity)
      • checkReadableBytes

        protected final void checkReadableBytes​(int minimumReadableBytes)
      • adjustIndexMarks

        protected final void adjustIndexMarks​(int decrement)