Class EmptyChannelBuffer

    • Method Detail

      • 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
        Overrides:
        clear in class AbstractChannelBuffer
      • 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
        Overrides:
        setIndex in class AbstractChannelBuffer
      • 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
        Overrides:
        discardReadBytes in class AbstractChannelBuffer
      • 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
        Overrides:
        readBytes in class AbstractChannelBuffer
        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
        Overrides:
        readSlice in class AbstractChannelBuffer
        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
        Overrides:
        readBytes in class AbstractChannelBuffer
        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
        Overrides:
        readBytes in class AbstractChannelBuffer
      • 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
        Overrides:
        readBytes in class AbstractChannelBuffer
        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
        Overrides:
        readBytes in class AbstractChannelBuffer
      • 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
        Overrides:
        readBytes in class AbstractChannelBuffer
        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
      • 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
        Overrides:
        writeBytes in class AbstractChannelBuffer
        srcIndex - the first index of the source
        length - the number of bytes to transfer
      • 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
        Overrides:
        writeBytes in class AbstractChannelBuffer
        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
        Overrides:
        writeBytes in class AbstractChannelBuffer
      • 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
        Overrides:
        writeBytes in class AbstractChannelBuffer
        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
        Overrides:
        writeBytes in class AbstractChannelBuffer
        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
        Overrides:
        writeZero in class AbstractChannelBuffer
        Parameters:
        length - the number of NULs to write to the buffer