Class AbstractChannelBuffer

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int bytesBefore​(byte value)
      Locates the first occurrence of the specified value in this buffer.
      int bytesBefore​(int length, byte value)
      Locates the first occurrence of the specified value in this buffer.
      int bytesBefore​(int index, int length, byte value)
      Locates the first occurrence of the specified value in this buffer.
      int bytesBefore​(int index, int length, ChannelBufferIndexFinder indexFinder)
      Locates the first place where the specified indexFinder returns true.
      int bytesBefore​(int length, ChannelBufferIndexFinder indexFinder)
      Locates the first place where the specified indexFinder returns true.
      int bytesBefore​(ChannelBufferIndexFinder indexFinder)
      Locates the first place where the specified indexFinder returns true.
      protected void checkReadableBytes​(int minimumReadableBytes)
      Throws an IndexOutOfBoundsException if the current readable bytes of this buffer is less than the specified value.
      void clear()
      Sets the readerIndex and writerIndex of this buffer to 0.
      int compareTo​(ChannelBuffer that)
      Compares the content of the specified buffer to the content of this buffer.
      ChannelBuffer copy()
      Returns a copy of this buffer's readable bytes.
      void discardReadBytes()
      Discards the bytes between the 0th index and readerIndex.
      void ensureWritableBytes​(int writableBytes)
      Makes sure the number of the writable bytes is equal to or greater than the specified value.
      boolean equals​(Object o)
      Determines if the content of the specified buffer is identical to the content of this array.
      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, ChannelBuffer 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, ChannelBuffer dst, int length)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      char getChar​(int index)
      Gets a 2-byte UTF-16 character at the specified absolute index in this buffer.
      double getDouble​(int index)
      Gets a 64-bit floating point number at the specified absolute index in this buffer.
      float getFloat​(int index)
      Gets a 32-bit floating point number at the specified absolute index in this buffer.
      int getMedium​(int index)
      Gets a 24-bit medium 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.
      int hashCode()
      Returns a hash code which was calculated from the content of this buffer.
      int indexOf​(int fromIndex, int toIndex, byte value)
      Locates the first occurrence of the specified value in this buffer.
      int indexOf​(int fromIndex, int toIndex, ChannelBufferIndexFinder indexFinder)
      Locates the first place where the specified indexFinder returns true.
      void markReaderIndex()
      Marks the current readerIndex in this buffer.
      void markWriterIndex()
      Marks the current writerIndex in this buffer.
      boolean readable()
      Returns true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
      int readableBytes()
      Returns the number of readable bytes which is equal to (this.writerIndex - this.readerIndex).
      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).
      ChannelBuffer readBytes​(int length)
      Transfers this buffer's data to a newly created buffer starting at the current readerIndex and increases the readerIndex by the number of the transferred bytes (= length).
      void readBytes​(OutputStream out, int length)
      Transfers this buffer's data to the specified stream starting at the current readerIndex.
      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.
      int readBytes​(GatheringByteChannel out, int length)
      Transfers this buffer's data to the specified stream starting at the current readerIndex.
      void readBytes​(ChannelBuffer 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​(ChannelBuffer 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​(ChannelBuffer 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 2-byte UTF-16 character at the current readerIndex and increases the readerIndex by 2 in this buffer.
      double readDouble()
      Gets a 64-bit floating point number at the current readerIndex and increases the readerIndex by 8 in this buffer.
      int readerIndex()
      Returns the readerIndex of this buffer.
      void readerIndex​(int readerIndex)
      Sets the readerIndex of this buffer.
      float readFloat()
      Gets a 32-bit floating point number 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.
      int readMedium()
      Gets a 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 in this buffer.
      short readShort()
      Gets a 16-bit short integer at the current readerIndex and increases the readerIndex by 2 in this buffer.
      ChannelBuffer readSlice​(int length)
      Returns a new slice of this buffer's sub-region starting at the current readerIndex and increases the readerIndex by the size of the new slice (= length).
      short 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 readUnsignedMedium()
      Gets an unsigned 24-bit medium integer at the current readerIndex and increases the readerIndex by 3 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.
      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 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, ChannelBuffer src)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer becomes unreadable.
      void setBytes​(int index, ChannelBuffer src, int length)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
      void setChar​(int index, int value)
      Sets the specified 2-byte UTF-16 character at the specified absolute index in this buffer.
      void setDouble​(int index, double value)
      Sets the specified 64-bit floating-point number at the specified absolute index in this buffer.
      void setFloat​(int index, float value)
      Sets the specified 32-bit floating-point number 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 setZero​(int index, int length)
      Fills this buffer with NUL (0x00) starting at the specified absolute index.
      void skipBytes​(int length)
      Increases the current readerIndex by the specified length in this buffer.
      ChannelBuffer slice()
      Returns a slice of this buffer's readable bytes.
      ByteBuffer toByteBuffer()
      Converts this buffer's readable bytes into a NIO buffer.
      ByteBuffer[] toByteBuffers()
      Converts this buffer's readable bytes into an array of NIO buffers.
      ByteBuffer[] toByteBuffers​(int index, int length)
      Converts this buffer's sub-region into an array of NIO buffers.
      String toString()
      Returns the string representation of this buffer.
      String toString​(int index, int length, Charset charset)
      Decodes this buffer's sub-region into a string with the specified character set.
      String toString​(Charset charset)
      Decodes this buffer's readable bytes into a string with the specified character set name.
      boolean writable()
      Returns true if and only if (this.capacity - this.writerIndex) is greater than 0.
      int writableBytes()
      Returns the number of writable bytes which is equal to (this.capacity - this.writerIndex).
      void writeByte​(int 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).
      int writeBytes​(InputStream in, int length)
      Transfers the content of the specified stream to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
      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.
      int writeBytes​(ScatteringByteChannel in, int length)
      Transfers the content of the specified channel to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
      void writeBytes​(ChannelBuffer src)
      Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer becomes unreadable, and increases the writerIndex by the number of the transferred bytes.
      void writeBytes​(ChannelBuffer 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​(ChannelBuffer 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​(int value)
      Sets the specified 2-byte UTF-16 character at the current writerIndex and increases the writerIndex by 2 in this buffer.
      void writeDouble​(double value)
      Sets the specified 64-bit floating point number at the current writerIndex and increases the writerIndex by 8 in this buffer.
      void writeFloat​(float value)
      Sets the specified 32-bit floating point number 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 writeMedium​(int value)
      Sets the specified 24-bit medium integer at the current writerIndex and increases the writerIndex by 3 in this buffer.
      int writerIndex()
      Returns the writerIndex of this buffer.
      void writerIndex​(int writerIndex)
      Sets the writerIndex of this buffer.
      void writeShort​(int value)
      Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer.
      void writeZero​(int length)
      Fills this buffer with NUL (0x00) starting at the current writerIndex and increases the writerIndex by the specified length.
    • Constructor Detail

      • AbstractChannelBuffer

        public AbstractChannelBuffer()
    • Method Detail

      • readerIndex

        public int readerIndex()
        Description copied from interface: ChannelBuffer
        Returns the readerIndex of this buffer.
        Specified by:
        readerIndex in interface ChannelBuffer
      • readerIndex

        public void readerIndex​(int readerIndex)
        Description copied from interface: ChannelBuffer
        Sets the readerIndex of this buffer.
        Specified by:
        readerIndex in interface ChannelBuffer
      • writerIndex

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

        public void writerIndex​(int writerIndex)
        Description copied from interface: ChannelBuffer
        Sets the writerIndex of this buffer.
        Specified by:
        writerIndex in interface ChannelBuffer
      • setIndex

        public void setIndex​(int readerIndex,
                             int writerIndex)
        Description copied from interface: ChannelBuffer
        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 ChannelBuffer.readerIndex(int) and ChannelBuffer.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, this method guarantees that it never throws an IndexOutOfBoundsException as long as the specified indexes meet basic constraints, regardless what the current index values of the buffer are:
         // No matter what the current state of the buffer is, the following
         // call always succeeds as long as the capacity of the buffer is not
         // less than 4.
         buf.setIndex(2, 4);
         
        Specified by:
        setIndex in interface ChannelBuffer
      • clear

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

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

        Specified by:
        clear in interface ChannelBuffer
      • readable

        public boolean readable()
        Description copied from interface: ChannelBuffer
        Returns true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
        Specified by:
        readable in interface ChannelBuffer
      • writable

        public boolean writable()
        Description copied from interface: ChannelBuffer
        Returns true if and only if (this.capacity - this.writerIndex) is greater than 0.
        Specified by:
        writable in interface ChannelBuffer
      • readableBytes

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

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

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

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

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

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

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

        Please refer to the class documentation for more detailed explanation.

        Specified by:
        discardReadBytes in interface ChannelBuffer
      • ensureWritableBytes

        public void ensureWritableBytes​(int writableBytes)
        Description copied from interface: ChannelBuffer
        Makes sure the number of the writable bytes is equal to or greater than the specified value. If there is enough writable bytes in this buffer, this method returns with no side effect. Otherwise:
        • a non-dynamic buffer will throw an IndexOutOfBoundsException.
        • a dynamic buffer will expand its capacity so that the number of the writable bytes becomes equal to or greater than the specified value. The expansion involves the reallocation of the internal buffer and consequently memory copy.
        Specified by:
        ensureWritableBytes in interface ChannelBuffer
        Parameters:
        writableBytes - the expected minimum number of writable bytes
      • getUnsignedByte

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public int readUnsignedShort()
        Description copied from interface: ChannelBuffer
        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 ChannelBuffer
      • readMedium

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

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

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

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

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

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

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

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

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

        public ChannelBuffer readSlice​(int length)
        Description copied from interface: ChannelBuffer
        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).
        Specified by:
        readSlice in interface ChannelBuffer
        Parameters:
        length - the size of the new slice
        Returns:
        the newly created slice
      • readBytes

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

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

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

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

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

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

        public void skipBytes​(int length)
        Description copied from interface: ChannelBuffer
        Increases the current readerIndex by the specified length in this buffer.
        Specified by:
        skipBytes in interface ChannelBuffer
      • writeByte

        public void writeByte​(int value)
        Description copied from interface: ChannelBuffer
        Sets the specified byte at the current writerIndex and increases the writerIndex by 1 in this buffer. The 24 high-order bits of the specified value are ignored.
        Specified by:
        writeByte in interface ChannelBuffer
      • writeShort

        public void writeShort​(int value)
        Description copied from interface: ChannelBuffer
        Sets the specified 16-bit short integer at the current writerIndex and increases the writerIndex by 2 in this buffer. The 16 high-order bits of the specified value are ignored.
        Specified by:
        writeShort in interface ChannelBuffer
      • writeMedium

        public void writeMedium​(int value)
        Description copied from interface: ChannelBuffer
        Sets the specified 24-bit medium integer at the current writerIndex and increases the writerIndex by 3 in this buffer.
        Specified by:
        writeMedium in interface ChannelBuffer
      • writeInt

        public void writeInt​(int value)
        Description copied from interface: ChannelBuffer
        Sets the specified 32-bit integer at the current writerIndex and increases the writerIndex by 4 in this buffer.
        Specified by:
        writeInt in interface ChannelBuffer
      • writeLong

        public void writeLong​(long value)
        Description copied from interface: ChannelBuffer
        Sets the specified 64-bit long integer at the current writerIndex and increases the writerIndex by 8 in this buffer.
        Specified by:
        writeLong in interface ChannelBuffer
      • writeChar

        public void writeChar​(int value)
        Description copied from interface: ChannelBuffer
        Sets the specified 2-byte UTF-16 character at the current writerIndex and increases the writerIndex by 2 in this buffer. The 16 high-order bits of the specified value are ignored.
        Specified by:
        writeChar in interface ChannelBuffer
      • writeFloat

        public void writeFloat​(float value)
        Description copied from interface: ChannelBuffer
        Sets the specified 32-bit floating point number at the current writerIndex and increases the writerIndex by 4 in this buffer.
        Specified by:
        writeFloat in interface ChannelBuffer
      • writeDouble

        public void writeDouble​(double value)
        Description copied from interface: ChannelBuffer
        Sets the specified 64-bit floating point number at the current writerIndex and increases the writerIndex by 8 in this buffer.
        Specified by:
        writeDouble in interface ChannelBuffer
      • writeBytes

        public void writeBytes​(byte[] src,
                               int srcIndex,
                               int length)
        Description copied from interface: ChannelBuffer
        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).
        Specified by:
        writeBytes in interface ChannelBuffer
        srcIndex - the first index of the source
        length - the number of bytes to transfer
      • writeBytes

        public void writeBytes​(byte[] src)
        Description copied from interface: ChannelBuffer
        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).
        Specified by:
        writeBytes in interface ChannelBuffer
      • writeBytes

        public void writeBytes​(ChannelBuffer src,
                               int srcIndex,
                               int length)
        Description copied from interface: ChannelBuffer
        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).
        Specified by:
        writeBytes in interface ChannelBuffer
        srcIndex - the first index of the source
        length - the number of bytes to transfer
      • writeBytes

        public void writeBytes​(ByteBuffer src)
        Description copied from interface: ChannelBuffer
        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.
        Specified by:
        writeBytes in interface ChannelBuffer
      • writeBytes

        public int writeBytes​(InputStream in,
                              int length)
                       throws IOException
        Description copied from interface: ChannelBuffer
        Transfers the content of the specified stream to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
        Specified by:
        writeBytes in interface ChannelBuffer
        length - the number of bytes to transfer
        Returns:
        the actual number of bytes read in from the specified stream
        Throws:
        IOException - if the specified stream threw an exception during I/O
      • writeBytes

        public int writeBytes​(ScatteringByteChannel in,
                              int length)
                       throws IOException
        Description copied from interface: ChannelBuffer
        Transfers the content of the specified channel to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes.
        Specified by:
        writeBytes in interface ChannelBuffer
        length - the maximum number of bytes to transfer
        Returns:
        the actual number of bytes read in from the specified channel
        Throws:
        IOException - if the specified channel threw an exception during I/O
      • writeZero

        public void writeZero​(int length)
        Description copied from interface: ChannelBuffer
        Fills this buffer with NUL (0x00) starting at the current writerIndex and increases the writerIndex by the specified length.
        Specified by:
        writeZero in interface ChannelBuffer
        Parameters:
        length - the number of NULs to write to the buffer
      • copy

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

        public ChannelBuffer slice()
        Description copied from interface: ChannelBuffer
        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.
        Specified by:
        slice in interface ChannelBuffer
      • toByteBuffer

        public ByteBuffer toByteBuffer()
        Description copied from interface: ChannelBuffer
        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.
        Specified by:
        toByteBuffer in interface ChannelBuffer
      • toByteBuffers

        public ByteBuffer[] toByteBuffers()
        Description copied from interface: ChannelBuffer
        Converts this buffer's readable bytes into an array of NIO buffers. The returned buffers might or might not share the content with this buffer, while they have separate indexes and marks. This method is identical to buf.toByteBuffers(buf.readerIndex(), buf.readableBytes()). This method does not modify readerIndex or writerIndex of this buffer.
        Specified by:
        toByteBuffers in interface ChannelBuffer
      • toByteBuffers

        public ByteBuffer[] toByteBuffers​(int index,
                                          int length)
        Description copied from interface: ChannelBuffer
        Converts this buffer's sub-region into an array of NIO buffers. The returned buffers 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.
        Specified by:
        toByteBuffers in interface ChannelBuffer
      • toString

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

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

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

        If fromIndex is greater than toIndex, the search is performed in a reversed order.

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

        Specified by:
        indexOf in interface ChannelBuffer
        Returns:
        the absolute index of the first occurrence if found. -1 otherwise.
      • indexOf

        public int indexOf​(int fromIndex,
                           int toIndex,
                           ChannelBufferIndexFinder indexFinder)
        Description copied from interface: ChannelBuffer
        Locates the first place where the specified indexFinder returns true. The search takes place from the specified fromIndex (inclusive) to the specified toIndex (exclusive).

        If fromIndex is greater than toIndex, the search is performed in a reversed order.

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

        Specified by:
        indexOf in interface ChannelBuffer
        Returns:
        the absolute index where the specified indexFinder returned true. -1 if the indexFinder did not return true at all.
      • bytesBefore

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

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

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

        public int bytesBefore​(ChannelBufferIndexFinder indexFinder)
        Description copied from interface: ChannelBuffer
        Locates the first place where the specified indexFinder returns true. The search takes place from the current readerIndex (inclusive) to the current writerIndex.

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

        Specified by:
        bytesBefore in interface ChannelBuffer
        Returns:
        the number of bytes between the current readerIndex and the first place where the indexFinder returned true. -1 if the indexFinder did not return true at all.
      • bytesBefore

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

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

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

        public int bytesBefore​(int length,
                               ChannelBufferIndexFinder indexFinder)
        Description copied from interface: ChannelBuffer
        Locates the first place where the specified indexFinder returns true. The search starts the current readerIndex (inclusive) and lasts for the specified length.

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

        Specified by:
        bytesBefore in interface ChannelBuffer
        Returns:
        the number of bytes between the current readerIndex and the first place where the indexFinder returned true. -1 if the indexFinder did not return true at all.
      • bytesBefore

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

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

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

        public int bytesBefore​(int index,
                               int length,
                               ChannelBufferIndexFinder indexFinder)
        Description copied from interface: ChannelBuffer
        Locates the first place where the specified indexFinder returns true. The search starts the specified index (inclusive) and lasts for the specified length.

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

        Specified by:
        bytesBefore in interface ChannelBuffer
        Returns:
        the number of bytes between the specified index and the first place where the indexFinder returned true. -1 if the indexFinder did not return true at all.
      • hashCode

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

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

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