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 Details

    • array

      protected final byte[] array
      The underlying heap byte array that this buffer is wrapping.
  • Constructor Details

    • HeapChannelBuffer

      protected HeapChannelBuffer(int length)
      Creates a new heap buffer with a newly allocated byte array.
      Parameters:
      length - the length of the new byte array
    • HeapChannelBuffer

      protected 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 Details

    • 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.