org.jboss.netty.buffer

## Class HeapChannelBuffer

- java.lang.Object
- - org.jboss.netty.buffer.AbstractChannelBuffer
  - - org.jboss.netty.buffer.HeapChannelBuffer

- All Implemented Interfaces:
    Comparable<ChannelBuffer>, ChannelBuffer
  Direct Known Subclasses:
    BigEndianHeapChannelBuffer, LittleEndianHeapChannelBuffer

      public abstract class HeapChannelBuffer
      extends AbstractChannelBuffer

  A skeletal implementation for Java heap buffers.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected byte[]` | `array` The underlying heap byte array that this buffer is wrapping.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `HeapChannelBuffer(byte[] array)` Creates a new heap buffer with an existing byte array.
    `protected` | `HeapChannelBuffer(byte[] array, int readerIndex, int writerIndex)` Creates a new heap buffer with an existing byte array.
    `` | `HeapChannelBuffer(int length)` Creates a new heap buffer with a newly allocated byte array.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `byte` | `getByte(int index)` Gets a byte at the specified absolute `index` in this buffer.
    `void` | `getBytes(int index, byte[] dst, int dstIndex, int length)` Transfers this buffer's data to the specified destination starting at the specified absolute `index`.
    `void` | `getBytes(int index, ByteBuffer dst)` Transfers this buffer's data to the specified destination starting at the specified absolute `index` until the destination's position reaches its limit.
    `void` | `getBytes(int index, ChannelBuffer dst, int dstIndex, int length)` Transfers this buffer's data to the specified destination starting at the specified absolute `index`.
    `int` | `getBytes(int index, GatheringByteChannel out, int length)` Transfers this buffer's data to the specified channel starting at the specified absolute `index`.
    `void` | `getBytes(int index, OutputStream out, int length)` Transfers this buffer's data to the specified stream starting at the specified absolute `index`.
    `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` | `setByte(int index, int value)` Sets the specified byte at the specified absolute `index` in this buffer.
    `void` | `setBytes(int index, byte[] src, int srcIndex, int length)` Transfers the specified source array's data to this buffer starting at the specified absolute `index`.
    `void` | `setBytes(int index, ByteBuffer src)` Transfers the specified source buffer's data to this buffer starting at the specified absolute `index` until the source buffer's position reaches its limit.
    `void` | `setBytes(int index, 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 in, int length)` Transfers the content of the specified source stream to this buffer starting at the specified absolute `index`.
    `int` | `setBytes(int index, ScatteringByteChannel in, int length)` Transfers the content of the specified source channel to this buffer starting at the specified absolute `index`.
    `ChannelBuffer` | `slice(int index, int length)` Returns a slice of this buffer's sub-region.
    `ByteBuffer` | `toByteBuffer(int index, int length)` Converts this buffer's sub-region into a NIO buffer.

    - ### Methods inherited from class org.jboss.netty.buffer.AbstractChannelBuffer

      `bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, checkReadableBytes, clear, compareTo, copy, discardReadBytes, ensureWritableBytes, equals, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, indexOf, indexOf, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, skipBytes, slice, toByteBuffer, toByteBuffers, toByteBuffers, toString, toString, toString, toString, toString, toString, toString, writable, writableBytes, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort, writeZero`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.jboss.netty.buffer.ChannelBuffer

      `copy, duplicate, factory, getInt, getLong, getShort, getUnsignedMedium, order, setInt, setLong, setMedium, setShort`

- - ### Field Detail

    - #### array

          protected final byte[] array

      The underlying heap byte array that this buffer is wrapping.

  - ### Constructor Detail

    - #### HeapChannelBuffer

          public HeapChannelBuffer(int length)

      Creates a new heap buffer with a newly allocated byte array.
      Parameters:
        `length` - the length of the new byte array

    - #### HeapChannelBuffer

          public HeapChannelBuffer(byte[] array)

      Creates a new heap buffer with an existing byte array.
      Parameters:
        `array` - the byte array to wrap

    - #### HeapChannelBuffer

          protected HeapChannelBuffer(byte[] array,
                           int readerIndex,
                           int writerIndex)

      Creates a new heap buffer with an existing byte array.
      Parameters:
        `array` - the byte array to wrap
        `readerIndex` - the initial reader index of this buffer
        `writerIndex` - the initial writer index of this buffer

  - ### Method Detail

    - #### isDirect

          public boolean isDirect()

      Description copied from interface: `ChannelBuffer`
      Returns `true` if and only if this buffer is backed by an NIO direct buffer.

    - #### capacity

          public int capacity()

      Description copied from interface: `ChannelBuffer`
      Returns the number of bytes (octets) this buffer can contain.

    - #### hasArray

          public boolean hasArray()

      Description copied from interface: `ChannelBuffer`
      Returns `true` if and only if this buffer has a backing byte array. If this method returns true, you can safely call `ChannelBuffer.array()` and `ChannelBuffer.arrayOffset()`.

    - #### array

          public byte[] array()

      Description copied from interface: `ChannelBuffer`
      Returns the backing byte array of this buffer.

    - #### arrayOffset

          public int arrayOffset()

      Description copied from interface: `ChannelBuffer`
      Returns the offset of the first byte within the backing byte array of this buffer.

    - #### getByte

          public byte getByte(int index)

      Description copied from interface: `ChannelBuffer`
      Gets a byte at the specified absolute `index` in this buffer. This method does not modify `readerIndex` or `writerIndex` of this buffer.

    - #### getBytes

          public void getBytes(int index,
                      ChannelBuffer dst,
                      int dstIndex,
                      int length)

      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 both the source (i.e. `this`) and the destination.
        `dstIndex` - the first index of the destination
        `length` - the number of bytes to transfer

    - #### getBytes

          public void getBytes(int index,
                      byte[] dst,
                      int dstIndex,
                      int length)

      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.
        `dstIndex` - the first index of the destination
        `length` - the number of bytes to transfer

    - #### getBytes

          public void getBytes(int index,
                      ByteBuffer dst)

      Description copied from interface: `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

          public void getBytes(int index,
                      OutputStream out,
                      int length)
                        throws IOException

      Description copied from interface: `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.
        `length` - the number of bytes to transfer
      Throws:
        `IOException` - if the specified stream threw an exception during I/O

    - #### getBytes

          public int getBytes(int index,
                     GatheringByteChannel out,
                     int length)
                       throws IOException

      Description copied from interface: `ChannelBuffer`
      Transfers this buffer's data to the specified channel starting at the specified absolute `index`. This method does not modify `readerIndex` or `writerIndex` of this buffer.
        `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

    - #### setByte

          public void setByte(int index,
                     int value)

      Description copied from interface: `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.

    - #### setBytes

          public void setBytes(int index,
                      ChannelBuffer src,
                      int srcIndex,
                      int length)

      Description copied from interface: `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.
        `srcIndex` - the first index of the source
        `length` - the number of bytes to transfer

    - #### setBytes

          public void setBytes(int index,
                      byte[] src,
                      int srcIndex,
                      int length)

      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.

    - #### setBytes

          public void setBytes(int index,
                      ByteBuffer src)

      Description copied from interface: `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

          public int setBytes(int index,
                     InputStream in,
                     int length)
                       throws IOException

      Description copied from interface: `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.
        `length` - the number of bytes to transfer
      Returns:
        the actual number of bytes read in from the specified channel. `-1` if the specified channel is closed.
      Throws:
        `IOException` - if the specified stream threw an exception during I/O

    - #### setBytes

          public int setBytes(int index,
                     ScatteringByteChannel in,
                     int length)
                       throws IOException

      Description copied from interface: `ChannelBuffer`
      Transfers the content of the specified source channel to this buffer starting at the specified absolute `index`. This method does not modify `readerIndex` or `writerIndex` of this buffer.
        `length` - the maximum number of bytes to transfer
      Returns:
        the actual number of bytes read in from the specified channel. `-1` if the specified channel is closed.
      Throws:
        `IOException` - if the specified channel threw an exception during I/O

    - #### slice

          public ChannelBuffer slice(int index,
                            int length)

      Description copied from interface: `ChannelBuffer`
      Returns a slice of this buffer's sub-region. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks. This method does not modify `readerIndex` or `writerIndex` of this buffer.

    - #### toByteBuffer

          public ByteBuffer toByteBuffer(int index,
                                int length)

      Description copied from interface: `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.

Copyright © 2008-2012 The Netty Project. All Rights Reserved.