Class BufferByteArray

java.lang.Object
org.apache.mina.util.byteaccess.AbstractByteArray
org.apache.mina.util.byteaccess.BufferByteArray
All Implemented Interfaces:
ByteArray, IoAbsoluteReader, IoAbsoluteWriter
Direct Known Subclasses:
ByteArrayPool.DirectBufferByteArray

public abstract class BufferByteArray extends AbstractByteArray
A ByteArray backed by a IoBuffer. This class is abstract. Subclasses need to override the free() method. An implementation backed by a heap IoBuffer can be created with a SimpleByteArrayFactory.
  • Field Details

    • bb

      protected IoBuffer bb
      The backing IoBuffer.
  • Constructor Details

    • BufferByteArray

      public BufferByteArray(IoBuffer bb)
      Creates a new instance of BufferByteArray and uses the supplied IoBuffer to back this class
      Parameters:
      bb - The backing buffer
  • Method Details

    • getIoBuffers

      public Iterable<IoBuffer> getIoBuffers()
      Returns:
      the sequence of IoBuffers that back this array. Compared to getSingleIoBuffer(), this method should be relatively efficient for all implementations.
    • getSingleIoBuffer

      public IoBuffer getSingleIoBuffer()
      Returns:
      a single IoBuffer that backs this array. Some implementations may initially have data split across multiple buffers, so calling this method may require a new buffer to be allocated and populated.
    • slice

      public ByteArray slice(int index, int length)
      Creates an array with a view of part of this array. Calling free() on the returned slice has no effect.
      Parameters:
      index - The starting position
      length - The number of bytes to copy
      Returns:
      The ByteArray that is a view on the original array
    • cursor

      public ByteArray.Cursor cursor()
      Returns:
      a cursor starting at index 0 (which may not be the start of the array).
    • cursor

      public ByteArray.Cursor cursor(int index)
      Parameters:
      index - The starting point
      Returns:
      a cursor starting at the given index.
    • first

      public int first()
      Returns:
      the index of the first byte that can be accessed.
    • last

      public int last()
      Returns:
      the index after the last byte that can be accessed.
    • order

      public ByteOrder order()
      Returns:
      the order of the bytes.
    • order

      public void order(ByteOrder order)
      Set the byte order of the array.
      Parameters:
      order - The ByteOrder to use
    • get

      public byte get(int index)
      Parameters:
      index - The starting position
      Returns:
      a byte from the given index.
    • put

      public void put(int index, byte b)
      Puts a byte at the given index.
      Parameters:
      index - The position
      b - The byte to put
    • get

      public void get(int index, IoBuffer other)
      Gets enough bytes to fill the IoBuffer from the given index.
      Parameters:
      index - The starting position
      other - The IoBuffer that will be filled with the bytes
    • put

      public void put(int index, IoBuffer other)
      Puts bytes from the IoBuffer at the given index.
      Parameters:
      index - The position
      other - The bytes to put
    • getShort

      public short getShort(int index)
      Parameters:
      index - The starting position
      Returns:
      a short from the given index.
    • putShort

      public void putShort(int index, short s)
      Puts a short at the given index.
      Parameters:
      index - The position
      s - The short to put
    • getInt

      public int getInt(int index)
      Parameters:
      index - The starting position
      Returns:
      an int from the given index.
    • putInt

      public void putInt(int index, int i)
      Puts an int at the given index.
      Parameters:
      index - The position
      i - The int to put
    • getLong

      public long getLong(int index)
      Parameters:
      index - The starting position
      Returns:
      a long from the given index.
    • putLong

      public void putLong(int index, long l)
      Puts a long at the given index.
      Parameters:
      index - The position
      l - The long to put
    • getFloat

      public float getFloat(int index)
      Parameters:
      index - The starting position
      Returns:
      a float from the given index.
    • putFloat

      public void putFloat(int index, float f)
      Puts a float at the given index.
      Parameters:
      index - The position
      f - The float to put
    • getDouble

      public double getDouble(int index)
      Parameters:
      index - The starting position
      Returns:
      a double from the given index.
    • putDouble

      public void putDouble(int index, double d)
      Puts a double at the given index.
      Parameters:
      index - The position
      d - The doubvle to put
    • getChar

      public char getChar(int index)
      Parameters:
      index - The starting position
      Returns:
      a char from the given index.
    • putChar

      public void putChar(int index, char c)
      Puts a char at the given index.
      Parameters:
      index - The position
      c - The char to put
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class AbstractByteArray