org.apache.mina.util.byteaccess

## Class BufferByteArray

- java.lang.Object
- - org.apache.mina.util.byteaccess.BufferByteArray

- All Implemented Interfaces:
    ByteArray, IoAbsoluteReader, IoAbsoluteWriter

      public abstract class BufferByteArray
      extends Object

  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`.
  Author:
    Apache MINA Project

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.mina.util.byteaccess.ByteArray

      `ByteArray.Cursor`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected IoBuffer` | `bb` The backing `IoBuffer`.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BufferByteArray(IoBuffer bb)` Creates a new instance of BufferByteArray and uses the supplied `IoBuffer` to back this class

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ByteArray.Cursor` | `cursor()` Get a cursor starting at index 0 (which may not be the start of the array).
    `ByteArray.Cursor` | `cursor(int index)` Get a cursor starting at the given index.
    `boolean` | `equals(Object other)` A ByteArray is equal to another ByteArray if they start and end at the same index, have the same byte order, and contain the same bytes at each index.
    `int` | `first()` Get the index of the first byte that can be accessed.
    `abstract void` | `free()` Remove any resources associated with this object.
    `byte` | `get(int index)` Gets a `byte` from the given index.
    `void` | `get(int index, IoBuffer other)` Gets enough bytes to fill the `IoBuffer` from the given index.
    `char` | `getChar(int index)` Gets a `char` from the given index.
    `double` | `getDouble(int index)` Gets a `double` from the given index.
    `float` | `getFloat(int index)` Gets a `float` from the given index.
    `int` | `getInt(int index)` Gets an `int` from the given index.
    `Iterable<IoBuffer>` | `getIoBuffers()` Get the sequence of `IoBuffer`s that back this array.
    `long` | `getLong(int index)` Gets a `long` from the given index.
    `short` | `getShort(int index)` Gets a `short` from the given index.
    `IoBuffer` | `getSingleIoBuffer()` Gets a single `IoBuffer` that backs this array.
    `int` | `last()` Gets the index after the last byte that can be accessed.
    `int` | `length()` Gets the total number of bytes that can be accessed.
    `ByteOrder` | `order()` Gets the order of the bytes.
    `void` | `order(ByteOrder order)` Set the byte order of the array.
    `void` | `put(int index, byte b)` Puts a `byte` at the given index.
    `void` | `put(int index, IoBuffer other)` Puts bytes from the `IoBuffer` at the given index.
    `void` | `putChar(int index, char c)` Puts a `char` at the given index.
    `void` | `putDouble(int index, double d)` Puts a `double` at the given index.
    `void` | `putFloat(int index, float f)` Puts a `float` at the given index.
    `void` | `putInt(int index, int i)` Puts an `int` at the given index.
    `void` | `putLong(int index, long l)` Puts a `long` at the given index.
    `void` | `putShort(int index, short s)` Puts a `short` at the given index.
    `ByteArray` | `slice(int index, int length)` Creates an array with a view of part of this array.

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

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

- - ### Field Detail

    - #### bb

          protected IoBuffer bb

      The backing `IoBuffer`.

  - ### Constructor Detail

    - #### 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 Detail

    - #### getIoBuffers

          public Iterable<IoBuffer> getIoBuffers()

      Description copied from interface: `ByteArray`
      Get the sequence of `IoBuffer`s that back this array. Compared to `getSingleIoBuffer()`, this method should be relatively efficient for all implementations.

    - #### getSingleIoBuffer

          public IoBuffer getSingleIoBuffer()

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

      Description copied from interface: `IoAbsoluteReader`
      Creates an array with a view of part of this array.

    - #### free

          public abstract void free()

      Description copied from interface: `ByteArray`
      Remove any resources associated with this object. Using the object after this method is called may result in undefined behaviour.

    - #### cursor

          public ByteArray.Cursor cursor()

      Description copied from interface: `ByteArray`
      Get a cursor starting at index 0 (which may not be the start of the array).

    - #### cursor

          public ByteArray.Cursor cursor(int index)

      Description copied from interface: `ByteArray`
      Get a cursor starting at the given index.

    - #### first

          public int first()

      Description copied from interface: `IoAbsoluteReader`
      Get the index of the first byte that can be accessed.

    - #### last

          public int last()

      Description copied from interface: `IoAbsoluteReader`
      Gets the index after the last byte that can be accessed.

    - #### order

          public ByteOrder order()

      Description copied from interface: `IoAbsoluteReader`
      Gets the order of the bytes.

    - #### order

          public void order(ByteOrder order)

      Description copied from interface: `ByteArray`
      Set the byte order of the array.

    - #### get

          public byte get(int index)

      Description copied from interface: `IoAbsoluteReader`
      Gets a `byte` from the given index.

    - #### put

          public void put(int index,
                 byte b)

      Description copied from interface: `IoAbsoluteWriter`
      Puts a `byte` at the given index.

    - #### get

          public void get(int index,
                 IoBuffer other)

      Description copied from interface: `IoAbsoluteReader`
      Gets enough bytes to fill the `IoBuffer` from the given index.

    - #### put

          public void put(int index,
                 IoBuffer other)

      Description copied from interface: `IoAbsoluteWriter`
      Puts bytes from the `IoBuffer` at the given index.

    - #### getShort

          public short getShort(int index)

      Description copied from interface: `IoAbsoluteReader`
      Gets a `short` from the given index.

    - #### putShort

          public void putShort(int index,
                      short s)

      Description copied from interface: `IoAbsoluteWriter`
      Puts a `short` at the given index.

    - #### getInt

          public int getInt(int index)

      Description copied from interface: `IoAbsoluteReader`
      Gets an `int` from the given index.

    - #### putInt

          public void putInt(int index,
                    int i)

      Description copied from interface: `IoAbsoluteWriter`
      Puts an `int` at the given index.

    - #### getLong

          public long getLong(int index)

      Description copied from interface: `IoAbsoluteReader`
      Gets a `long` from the given index.

    - #### putLong

          public void putLong(int index,
                     long l)

      Description copied from interface: `IoAbsoluteWriter`
      Puts a `long` at the given index.

    - #### getFloat

          public float getFloat(int index)

      Description copied from interface: `IoAbsoluteReader`
      Gets a `float` from the given index.

    - #### putFloat

          public void putFloat(int index,
                      float f)

      Description copied from interface: `IoAbsoluteWriter`
      Puts a `float` at the given index.

    - #### getDouble

          public double getDouble(int index)

      Description copied from interface: `IoAbsoluteReader`
      Gets a `double` from the given index.

    - #### putDouble

          public void putDouble(int index,
                       double d)

      Description copied from interface: `IoAbsoluteWriter`
      Puts a `double` at the given index.

    - #### getChar

          public char getChar(int index)

      Description copied from interface: `IoAbsoluteReader`
      Gets a `char` from the given index.

    - #### putChar

          public void putChar(int index,
                     char c)

      Description copied from interface: `IoAbsoluteWriter`
      Puts a `char` at the given index.

    - #### length

          public final int length()

      Description copied from interface: `IoAbsoluteReader`
      Gets the total number of bytes that can be accessed.
      Specified by:
        `length` in interface `IoAbsoluteReader`

    - #### equals

          public final boolean equals(Object other)

      Description copied from interface: `ByteArray`
      A ByteArray is equal to another ByteArray if they start and end at the same index, have the same byte order, and contain the same bytes at each index.
      Specified by:
        `equals` in interface `ByteArray`
      Overrides:
        `equals` in class `Object`

Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.