|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mina.util.byteaccess.CompositeByteArray
public final class CompositeByteArray
A ByteArray composed of other ByteArrays. Optimised for fast relative access via cursors. Absolute access methods are provided, but may perform poorly. TODO: Write about laziness of cursor implementation - how movement doesn't happen until actual get/put.
Nested Class Summary | |
---|---|
static interface |
CompositeByteArray.CursorListener
Allows for efficient detection of component boundaries when using a cursor. |
Nested classes/interfaces inherited from interface org.apache.mina.util.byteaccess.ByteArray |
---|
ByteArray.Cursor |
Constructor Summary | |
---|---|
CompositeByteArray()
Creates a new instance of CompositeByteArray. |
|
CompositeByteArray(ByteArrayFactory byteArrayFactory)
Creates a new instance of CompositeByteArray. |
Method Summary | |
---|---|
void |
addFirst(ByteArray ba)
Adds the specified ByteArray to the first
position in the list |
void |
addLast(ByteArray ba)
Adds the specified ByteArray to the end of the list |
ByteArray.Cursor |
cursor()
Get a cursor starting at index 0 (which may not be the start of the array). |
ByteArray.Cursor |
cursor(CompositeByteArray.CursorListener listener)
Get a cursor starting at index 0 (which may not be the start of the array) and with the given listener. |
ByteArray.Cursor |
cursor(int index)
Get a cursor starting at the given index. |
ByteArray.Cursor |
cursor(int index,
CompositeByteArray.CursorListener listener)
Get a cursor starting at the given index and with the given listener. |
boolean |
equals(java.lang.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. |
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 bb)
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. |
ByteArray |
getFirst()
Returns the first ByteArray in the list |
float |
getFloat(int index)
Gets a float from the given index. |
int |
getInt(int index)
Gets an int from the given index. |
java.lang.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. |
java.nio.ByteOrder |
order()
Gets the order of the bytes. |
void |
order(java.nio.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 bb)
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 |
removeFirst()
Remove the first ByteArray in the list |
ByteArray |
removeLast()
Removes the last ByteArray in the list |
ByteArray |
removeTo(int index)
Remove component ByteArray s to the given index (splitting
them if necessary) and returning them in a single ByteArray . |
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 |
Constructor Detail |
---|
public CompositeByteArray()
public CompositeByteArray(ByteArrayFactory byteArrayFactory)
byteArrayFactory
- The factory used to create the ByteArray objectsMethod Detail |
---|
public ByteArray getFirst()
ByteArray
in the list
public void addFirst(ByteArray ba)
ByteArray
to the first
position in the list
ba
- The ByteArray to add to the listpublic ByteArray removeFirst()
ByteArray
in the list
public ByteArray removeTo(int index)
ByteArray
s to the given index (splitting
them if necessary) and returning them in a single ByteArray
.
The caller is responsible for freeing the returned object.
TODO: Document free behaviour more thoroughly.
public void addLast(ByteArray ba)
ByteArray
to the end of the list
ba
- The ByteArray to add to the end of the listpublic ByteArray removeLast()
ByteArray
in the list
public void free()
ByteArray
public java.lang.Iterable<IoBuffer> getIoBuffers()
ByteArray
IoBuffer
s that back this array.
Compared to getSingleIoBuffer()
, this method should be
relatively efficient for all implementations.
public IoBuffer getSingleIoBuffer()
ByteArray
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.
public ByteArray.Cursor cursor()
ByteArray
public ByteArray.Cursor cursor(int index)
ByteArray
public ByteArray.Cursor cursor(CompositeByteArray.CursorListener listener)
listener
- Returns a new Cursor
instancepublic ByteArray.Cursor cursor(int index, CompositeByteArray.CursorListener listener)
index
- The position of the array to start the Cursor atlistener
- The listener for the Cursor that is returnedpublic ByteArray slice(int index, int length)
IoAbsoluteReader
public byte get(int index)
IoAbsoluteReader
byte
from the given index.
public void put(int index, byte b)
IoAbsoluteWriter
byte
at the given index.
public void get(int index, IoBuffer bb)
IoAbsoluteReader
IoBuffer
from the given index.
public void put(int index, IoBuffer bb)
IoAbsoluteWriter
IoBuffer
at the given index.
public int first()
IoAbsoluteReader
public int last()
IoAbsoluteReader
public java.nio.ByteOrder order()
IoAbsoluteReader
public void order(java.nio.ByteOrder order)
ByteArray
public short getShort(int index)
IoAbsoluteReader
short
from the given index.
public void putShort(int index, short s)
IoAbsoluteWriter
short
at the given index.
public int getInt(int index)
IoAbsoluteReader
int
from the given index.
public void putInt(int index, int i)
IoAbsoluteWriter
int
at the given index.
public long getLong(int index)
IoAbsoluteReader
long
from the given index.
public void putLong(int index, long l)
IoAbsoluteWriter
long
at the given index.
public float getFloat(int index)
IoAbsoluteReader
float
from the given index.
public void putFloat(int index, float f)
IoAbsoluteWriter
float
at the given index.
public double getDouble(int index)
IoAbsoluteReader
double
from the given index.
public void putDouble(int index, double d)
IoAbsoluteWriter
double
at the given index.
public char getChar(int index)
IoAbsoluteReader
char
from the given index.
public void putChar(int index, char c)
IoAbsoluteWriter
char
at the given index.
public final int length()
IoAbsoluteReader
length
in interface IoAbsoluteReader
public final boolean equals(java.lang.Object other)
ByteArray
equals
in interface ByteArray
equals
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |