类 NettyBackedChannelBuffer

    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      byte[] array()
      Returns the backing byte array of this buffer.
      int arrayOffset()
      Returns the offset of the first byte within the backing byte array of this buffer.
      int capacity()
      Returns the number of bytes (octets) this buffer can contain.
      void clear()
      Sets the readerIndex and writerIndex of this buffer to 0.
      int compareTo(ChannelBuffer o)  
      ChannelBuffer copy()
      Returns a copy of this buffer's readable bytes.
      ChannelBuffer copy(int index, int length)
      Returns a copy of this buffer's sub-region.
      void discardReadBytes()
      Discards the bytes between the 0th index and readerIndex.
      void ensureWritableBytes(int writableBytes)
      Makes sure the number of the writable bytes is equal to or greater than the specified value.
      ChannelBufferFactory factory()
      Returns the factory which creates a ChannelBuffer whose type and default ByteOrder are same with this buffer.
      byte getByte(int index)
      Gets a byte at the specified absolute index in this buffer.
      void getBytes(int index, byte[] dst)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      void getBytes(int index, byte[] dst, int dstIndex, int length)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      void getBytes(int index, 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.
      void getBytes(int index, ChannelBuffer dst, int dstIndex, int length)
      Transfers this buffer's data to the specified destination starting at the specified absolute index.
      void getBytes(int index, OutputStream dst, int length)
      Transfers this buffer's data to the specified stream starting at the specified absolute index.
      void getBytes(int index, ByteBuffer dst)
      Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit.
      boolean hasArray()
      Returns true if and only if this buffer has a backing byte array.
      boolean isDirect()
      Returns true if and only if this buffer is backed by an NIO direct buffer.
      void markReaderIndex()
      Marks the current readerIndex in this buffer.
      void markWriterIndex()
      Marks the current writerIndex in this buffer.
      org.jboss.netty.buffer.ChannelBuffer nettyChannelBuffer()  
      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(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).
      void readBytes(OutputStream dst, 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 readerIndex()
      Returns the readerIndex of this buffer.
      void readerIndex(int readerIndex)
      Sets the readerIndex of this buffer.
      void resetReaderIndex()
      Repositions the current readerIndex to the marked readerIndex in this buffer.
      void resetWriterIndex()
      Marks the current writerIndex in this buffer.
      void setByte(int index, int value)
      Sets the specified byte at the specified absolute index in this buffer.
      void setBytes(int index, byte[] src)
      Transfers the specified source array's data to this buffer starting at the specified absolute index.
      void setBytes(int index, byte[] src, int srcIndex, int length)
      Transfers the specified source array's data to this buffer starting at the specified absolute index.
      void setBytes(int index, 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 setBytes(int index, ChannelBuffer src, int srcIndex, int length)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index.
      int setBytes(int index, InputStream src, int length)
      Transfers the content of the specified source stream to this buffer starting at the specified absolute index.
      void setBytes(int index, ByteBuffer src)
      Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit.
      void setIndex(int readerIndex, int writerIndex)
      Sets the readerIndex and writerIndex of this buffer in one shot.
      void skipBytes(int length)
      Increases the current readerIndex by the specified length in this buffer.
      ByteBuffer toByteBuffer()
      Converts this buffer's readable bytes into a NIO buffer.
      ByteBuffer toByteBuffer(int index, int length)
      Converts this buffer's sub-region into a NIO buffer.
      boolean writable()
      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 index, int length)
      Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex by the number of the transferred bytes (= length).
      void writeBytes(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).
      int writeBytes(InputStream src, 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 writerIndex()
      Returns the writerIndex of this buffer.
      void writerIndex(int writerIndex)
      Sets the writerIndex of this buffer.
    • 构造器详细资料

      • NettyBackedChannelBuffer

        public NettyBackedChannelBuffer(org.jboss.netty.buffer.ChannelBuffer buffer)
    • 方法详细资料

      • nettyChannelBuffer

        public org.jboss.netty.buffer.ChannelBuffer nettyChannelBuffer()
      • capacity

        public int capacity()
        从接口复制的说明: ChannelBuffer
        Returns the number of bytes (octets) this buffer can contain.
        指定者:
        capacity 在接口中 ChannelBuffer
      • copy

        public ChannelBuffer copy(int index,
                                  int length)
        从接口复制的说明: ChannelBuffer
        Returns a copy of this buffer's sub-region. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method does not modify readerIndex or writerIndex of this buffer.
        指定者:
        copy 在接口中 ChannelBuffer
      • getByte

        public byte getByte(int index)
        从接口复制的说明: ChannelBuffer
        Gets a byte at the specified absolute index in this buffer. This method does not modify readerIndex or writerIndex of this buffer.
        指定者:
        getByte 在接口中 ChannelBuffer
      • getBytes

        public void getBytes(int index,
                             byte[] dst,
                             int dstIndex,
                             int length)
        从接口复制的说明: 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.
        指定者:
        getBytes 在接口中 ChannelBuffer
        dstIndex - the first index of the destination
        length - the number of bytes to transfer
      • getBytes

        public void getBytes(int index,
                             ByteBuffer dst)
        从接口复制的说明: ChannelBuffer
        Transfers this buffer's data to the specified destination starting at the specified absolute index until the destination's position reaches its limit. This method does not modify readerIndex or writerIndex of this buffer while the destination's position will be increased.
        指定者:
        getBytes 在接口中 ChannelBuffer
      • getBytes

        public void getBytes(int index,
                             ChannelBuffer dst,
                             int dstIndex,
                             int length)
        从接口复制的说明: 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 both the source (i.e. this) and the destination.
        指定者:
        getBytes 在接口中 ChannelBuffer
        dstIndex - the first index of the destination
        length - the number of bytes to transfer
      • getBytes

        public void getBytes(int index,
                             OutputStream dst,
                             int length)
                      throws IOException
        从接口复制的说明: ChannelBuffer
        Transfers this buffer's data to the specified stream starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
        指定者:
        getBytes 在接口中 ChannelBuffer
        length - the number of bytes to transfer
        抛出:
        IOException - if the specified stream threw an exception during I/O
      • isDirect

        public boolean isDirect()
        从接口复制的说明: ChannelBuffer
        Returns true if and only if this buffer is backed by an NIO direct buffer.
        指定者:
        isDirect 在接口中 ChannelBuffer
      • setByte

        public void setByte(int index,
                            int value)
        从接口复制的说明: ChannelBuffer
        Sets the specified byte at the specified absolute index in this buffer. The 24 high-order bits of the specified value are ignored. This method does not modify readerIndex or writerIndex of this buffer.
        指定者:
        setByte 在接口中 ChannelBuffer
      • setBytes

        public void setBytes(int index,
                             byte[] src,
                             int srcIndex,
                             int length)
        从接口复制的说明: 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.
        指定者:
        setBytes 在接口中 ChannelBuffer
      • setBytes

        public void setBytes(int index,
                             ByteBuffer src)
        从接口复制的说明: ChannelBuffer
        Transfers the specified source buffer's data to this buffer starting at the specified absolute index until the source buffer's position reaches its limit. This method does not modify readerIndex or writerIndex of this buffer.
        指定者:
        setBytes 在接口中 ChannelBuffer
      • setBytes

        public void setBytes(int index,
                             ChannelBuffer src,
                             int srcIndex,
                             int length)
        从接口复制的说明: ChannelBuffer
        Transfers the specified source buffer's data to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.
        指定者:
        setBytes 在接口中 ChannelBuffer
        srcIndex - the first index of the source
        length - the number of bytes to transfer
      • setBytes

        public int setBytes(int index,
                            InputStream src,
                            int length)
                     throws IOException
        从接口复制的说明: ChannelBuffer
        Transfers the content of the specified source stream to this buffer starting at the specified absolute index. This method does not modify readerIndex or writerIndex of this buffer.
        指定者:
        setBytes 在接口中 ChannelBuffer
        length - the number of bytes to transfer
        返回:
        the actual number of bytes read in from the specified channel. -1 if the specified channel is closed.
        抛出:
        IOException - if the specified stream threw an exception during I/O
      • toByteBuffer

        public ByteBuffer toByteBuffer(int index,
                                       int length)
        从接口复制的说明: ChannelBuffer
        Converts this buffer's sub-region into a NIO buffer. The returned buffer might or might not share the content with this buffer, while they have separate indexes and marks. This method does not modify readerIndex or writerIndex of this buffer.
        指定者:
        toByteBuffer 在接口中 ChannelBuffer
      • array

        public byte[] array()
        从接口复制的说明: ChannelBuffer
        Returns the backing byte array of this buffer.
        指定者:
        array 在接口中 ChannelBuffer
      • arrayOffset

        public int arrayOffset()
        从接口复制的说明: ChannelBuffer
        Returns the offset of the first byte within the backing byte array of this buffer.
        指定者:
        arrayOffset 在接口中 ChannelBuffer
      • clear

        public void clear()
        从接口复制的说明: 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.
        指定者:
        clear 在接口中 ChannelBuffer
      • copy

        public ChannelBuffer copy()
        从接口复制的说明: 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.
        指定者:
        copy 在接口中 ChannelBuffer
      • discardReadBytes

        public void discardReadBytes()
        从接口复制的说明: 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.
        指定者:
        discardReadBytes 在接口中 ChannelBuffer
      • ensureWritableBytes

        public void ensureWritableBytes(int writableBytes)
        从接口复制的说明: 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.
        指定者:
        ensureWritableBytes 在接口中 ChannelBuffer
        参数:
        writableBytes - the expected minimum number of writable bytes
      • getBytes

        public void getBytes(int index,
                             byte[] dst)
        从接口复制的说明: 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
        指定者:
        getBytes 在接口中 ChannelBuffer
      • readable

        public boolean readable()
        从接口复制的说明: ChannelBuffer
        Returns true if and only if (this.writerIndex - this.readerIndex) is greater than 0.
        指定者:
        readable 在接口中 ChannelBuffer
      • readableBytes

        public int readableBytes()
        从接口复制的说明: ChannelBuffer
        Returns the number of readable bytes which is equal to (this.writerIndex - this.readerIndex).
        指定者:
        readableBytes 在接口中 ChannelBuffer
      • readByte

        public byte readByte()
        从接口复制的说明: ChannelBuffer
        Gets a byte at the current readerIndex and increases the readerIndex by 1 in this buffer.
        指定者:
        readByte 在接口中 ChannelBuffer
      • readBytes

        public void readBytes(byte[] dst)
        从接口复制的说明: 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).
        指定者:
        readBytes 在接口中 ChannelBuffer
      • readBytes

        public void readBytes(byte[] dst,
                              int dstIndex,
                              int length)
        从接口复制的说明: 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).
        指定者:
        readBytes 在接口中 ChannelBuffer
        dstIndex - the first index of the destination
        length - the number of bytes to transfer
      • readBytes

        public void readBytes(ByteBuffer dst)
        从接口复制的说明: 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.
        指定者:
        readBytes 在接口中 ChannelBuffer
      • readBytes

        public void readBytes(ChannelBuffer dst,
                              int dstIndex,
                              int length)
        从接口复制的说明: 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).
        指定者:
        readBytes 在接口中 ChannelBuffer
        dstIndex - the first index of the destination
        length - the number of bytes to transfer
      • readBytes

        public ChannelBuffer readBytes(int length)
        从接口复制的说明: 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.
        指定者:
        readBytes 在接口中 ChannelBuffer
        参数:
        length - the number of bytes to transfer
        返回:
        the newly created buffer which contains the transferred bytes
      • resetReaderIndex

        public void resetReaderIndex()
        从接口复制的说明: ChannelBuffer
        Repositions the current readerIndex to the marked readerIndex in this buffer.
        指定者:
        resetReaderIndex 在接口中 ChannelBuffer
      • readerIndex

        public void readerIndex(int readerIndex)
        从接口复制的说明: ChannelBuffer
        Sets the readerIndex of this buffer.
        指定者:
        readerIndex 在接口中 ChannelBuffer
      • readBytes

        public void readBytes(OutputStream dst,
                              int length)
                       throws IOException
        从接口复制的说明: ChannelBuffer
        Transfers this buffer's data to the specified stream starting at the current readerIndex.
        指定者:
        readBytes 在接口中 ChannelBuffer
        length - the number of bytes to transfer
        抛出:
        IOException - if the specified stream threw an exception during I/O
      • setBytes

        public void setBytes(int index,
                             byte[] src)
        从接口复制的说明: 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.
        指定者:
        setBytes 在接口中 ChannelBuffer
      • setIndex

        public void setIndex(int readerIndex,
                             int writerIndex)
        从接口复制的说明: 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, ChannelBuffer.setIndex(int, int) guarantees that it never throws an IndexOutOfBoundsException as long as the specified indexes meet basic constraints, regardless what the current index values of the buffer are:

         // No matter what the current state of the buffer is, the following
         // call always succeeds as long as the capacity of the buffer is not
         // less than 4.
         buf.setIndex(2, 4);
         
        指定者:
        setIndex 在接口中 ChannelBuffer
      • skipBytes

        public void skipBytes(int length)
        从接口复制的说明: ChannelBuffer
        Increases the current readerIndex by the specified length in this buffer.
        指定者:
        skipBytes 在接口中 ChannelBuffer
      • toByteBuffer

        public ByteBuffer toByteBuffer()
        从接口复制的说明: 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.
        指定者:
        toByteBuffer 在接口中 ChannelBuffer
      • writable

        public boolean writable()
        从接口复制的说明: ChannelBuffer
        Returns true if and only if (this.capacity - this.writerIndex) is greater than 0.
        指定者:
        writable 在接口中 ChannelBuffer
      • writableBytes

        public int writableBytes()
        从接口复制的说明: ChannelBuffer
        Returns the number of writable bytes which is equal to (this.capacity - this.writerIndex).
        指定者:
        writableBytes 在接口中 ChannelBuffer
      • writeByte

        public void writeByte(int value)
        从接口复制的说明: 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.
        指定者:
        writeByte 在接口中 ChannelBuffer
      • writeBytes

        public void writeBytes(byte[] src)
        从接口复制的说明: 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).
        指定者:
        writeBytes 在接口中 ChannelBuffer
      • writeBytes

        public void writeBytes(byte[] src,
                               int index,
                               int length)
        从接口复制的说明: 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).
        指定者:
        writeBytes 在接口中 ChannelBuffer
        index - the first index of the source
        length - the number of bytes to transfer
      • writeBytes

        public void writeBytes(ByteBuffer src)
        从接口复制的说明: 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.
        指定者:
        writeBytes 在接口中 ChannelBuffer
      • writeBytes

        public void writeBytes(ChannelBuffer src,
                               int srcIndex,
                               int length)
        从接口复制的说明: 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).
        指定者:
        writeBytes 在接口中 ChannelBuffer
        srcIndex - the first index of the source
        length - the number of bytes to transfer
      • writeBytes

        public int writeBytes(InputStream src,
                              int length)
                       throws IOException
        从接口复制的说明: 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.
        指定者:
        writeBytes 在接口中 ChannelBuffer
        length - the number of bytes to transfer
        返回:
        the actual number of bytes read in from the specified stream
        抛出:
        IOException - if the specified stream threw an exception during I/O
      • writerIndex

        public void writerIndex(int writerIndex)
        从接口复制的说明: ChannelBuffer
        Sets the writerIndex of this buffer.
        指定者:
        writerIndex 在接口中 ChannelBuffer