|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mina.core.buffer.IoBuffer
public abstract class IoBuffer
A byte buffer used by MINA applications.
This is a replacement for ByteBuffer
. Please refer to
ByteBuffer
documentation for preliminary usage. MINA does
not use NIO ByteBuffer
directly for two reasons:
fill
, get/putString
, and
get/putAsciiInt()
enough.You can allocate a new heap buffer.
IoBuffer buf = IoBuffer.allocate(1024, false);you can also allocate a new direct buffer:
IoBuffer buf = IoBuffer.allocate(1024, true);or you can set the default buffer type.
// Allocate heap buffer by default. IoBuffer.setUseDirectBuffer(false); // A new heap buffer is returned. IoBuffer buf = IoBuffer.allocate(1024);
This class provides a few wrap(...) methods that wraps any NIO buffers and byte arrays.
Writing variable-length data using NIO ByteBuffers is not really
easy, and it is because its size is fixed. IoBuffer
introduces
autoExpand property. If autoExpand property is true, you
never get BufferOverflowException
or
IndexOutOfBoundsException
(except when index is negative).
It automatically expands its capacity and limit value. For example:
String greeting = messageBundle.getMessage( "hello" ); IoBuffer buf = IoBuffer.allocate( 16 ); // Turn on autoExpand (it is off by default) buf.setAutoExpand( true ); buf.putString( greeting, utf8encoder );The underlying
ByteBuffer
is reallocated by IoBuffer
behind
the scene if the encoded data is larger than 16 bytes in the example above.
Its capacity will double, and its limit will increase to the last position
the string is written.
You might also want to decrease the capacity of the buffer when most
of the allocated memory area is not being used. IoBuffer
provides
autoShrink property to take care of this issue. If
autoShrink is turned on, IoBuffer
halves the capacity
of the buffer when compact()
is invoked and only 1/4 or less of
the current capacity is being used.
You can also shrink()
method manually to shrink the capacity of
the buffer.
The underlying ByteBuffer
is reallocated by IoBuffer
behind
the scene, and therefore buf()
will return a different
ByteBuffer
instance once capacity changes. Please also note
compact()
or shrink()
will not decrease the capacity if
the new capacity is less than the minimumCapacity()
of the buffer.
Derived buffers are the buffers which were created by
duplicate()
, slice()
, or asReadOnlyBuffer()
.
They are useful especially when you broadcast the same messages to
multiple IoSession
s. Please note that the buffer derived from and
its derived buffers are not both auto-expandable neither auto-shrinkable.
Trying to call setAutoExpand(boolean)
or setAutoShrink(boolean)
with true parameter will raise an IllegalStateException
.
IoBufferAllocator
interface lets you override the default buffer
management behavior. There are two allocators provided out-of-the-box:
SimpleBufferAllocator
(default)CachedBufferAllocator
setAllocator(IoBufferAllocator)
.
Field Summary | |
---|---|
static IoBuffer |
EMPTY_BUFFER
An immutable empty buffer. |
Constructor Summary | |
---|---|
protected |
IoBuffer()
Creates a new instance. |
Method Summary | ||
---|---|---|
static IoBuffer |
allocate(int capacity)
Returns the direct or heap buffer which is capable to store the specified amount of bytes. |
|
static IoBuffer |
allocate(int capacity,
boolean direct)
Returns the buffer which is capable of the specified size. |
|
abstract byte[] |
array()
|
|
abstract int |
arrayOffset()
|
|
abstract CharBuffer |
asCharBuffer()
|
|
abstract DoubleBuffer |
asDoubleBuffer()
|
|
abstract FloatBuffer |
asFloatBuffer()
|
|
abstract InputStream |
asInputStream()
Returns an InputStream that reads the data from this buffer. |
|
abstract IntBuffer |
asIntBuffer()
|
|
abstract LongBuffer |
asLongBuffer()
|
|
abstract OutputStream |
asOutputStream()
Returns an OutputStream that appends the data into this buffer. |
|
abstract IoBuffer |
asReadOnlyBuffer()
|
|
abstract ShortBuffer |
asShortBuffer()
|
|
abstract ByteBuffer |
buf()
Returns the underlying NIO buffer instance. |
|
abstract int |
capacity()
|
|
abstract IoBuffer |
capacity(int newCapacity)
Increases the capacity of this buffer. |
|
abstract IoBuffer |
clear()
|
|
abstract IoBuffer |
compact()
|
|
abstract IoBuffer |
duplicate()
|
|
abstract IoBuffer |
expand(int expectedRemaining)
Changes the capacity and limit of this buffer so this buffer get the specified expectedRemaining room from the current position. |
|
abstract IoBuffer |
expand(int position,
int expectedRemaining)
Changes the capacity and limit of this buffer so this buffer get the specified expectedRemaining room from the specified position. |
|
abstract IoBuffer |
fill(byte value,
int size)
Fills this buffer with the specified value. |
|
abstract IoBuffer |
fill(int size)
Fills this buffer with NUL (0x00) . |
|
abstract IoBuffer |
fillAndReset(byte value,
int size)
Fills this buffer with the specified value. |
|
abstract IoBuffer |
fillAndReset(int size)
Fills this buffer with NUL (0x00) . |
|
abstract IoBuffer |
flip()
|
|
abstract void |
free()
Declares this buffer and all its derived buffers are not used anymore so that it can be reused by some IoBufferAllocator implementations. |
|
abstract byte |
get()
|
|
abstract IoBuffer |
get(byte[] dst)
|
|
abstract IoBuffer |
get(byte[] dst,
int offset,
int length)
|
|
abstract byte |
get(int index)
|
|
static IoBufferAllocator |
getAllocator()
Returns the allocator used by existing and new buffers |
|
abstract char |
getChar()
|
|
abstract char |
getChar(int index)
|
|
abstract double |
getDouble()
|
|
abstract double |
getDouble(int index)
|
|
abstract
|
getEnum(Class<E> enumClass)
Reads a byte from the buffer and returns the correlating enum constant defined by the specified enum type. |
|
abstract
|
getEnum(int index,
Class<E> enumClass)
Reads a byte from the buffer and returns the correlating enum constant defined by the specified enum type. |
|
abstract
|
getEnumInt(Class<E> enumClass)
Reads an int from the buffer and returns the correlating enum constant defined by the specified enum type. |
|
abstract
|
getEnumInt(int index,
Class<E> enumClass)
Reads an int from the buffer and returns the correlating enum constant defined by the specified enum type. |
|
abstract
|
getEnumSet(Class<E> enumClass)
Reads a byte sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumSet(int index,
Class<E> enumClass)
Reads a byte sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumSetInt(Class<E> enumClass)
Reads an int sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumSetInt(int index,
Class<E> enumClass)
Reads an int sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumSetLong(Class<E> enumClass)
Reads a long sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumSetLong(int index,
Class<E> enumClass)
Reads a long sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumSetShort(Class<E> enumClass)
Reads a short sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumSetShort(int index,
Class<E> enumClass)
Reads a short sized bit vector and converts it to an EnumSet . |
|
abstract
|
getEnumShort(Class<E> enumClass)
Reads a short from the buffer and returns the correlating enum constant defined by the specified enum type. |
|
abstract
|
getEnumShort(int index,
Class<E> enumClass)
Reads a short from the buffer and returns the correlating enum constant defined by the specified enum type. |
|
abstract float |
getFloat()
|
|
abstract float |
getFloat(int index)
|
|
abstract String |
getHexDump()
Returns hexdump of this buffer. |
|
abstract String |
getHexDump(int lengthLimit)
Return hexdump of this buffer with limited length. |
|
abstract int |
getInt()
|
|
abstract int |
getInt(int index)
|
|
abstract long |
getLong()
|
|
abstract long |
getLong(int index)
|
|
abstract int |
getMediumInt()
Relative get method for reading a medium int value. |
|
abstract int |
getMediumInt(int index)
Absolute get method for reading a medium int value. |
|
abstract Object |
getObject()
Reads a Java object from the buffer using the context ClassLoader
of the current thread. |
|
abstract Object |
getObject(ClassLoader classLoader)
Reads a Java object from the buffer using the specified classLoader. |
|
abstract String |
getPrefixedString(CharsetDecoder decoder)
Reads a string which has a 16-bit length field before the actual encoded string, using the specified decoder and returns it. |
|
abstract String |
getPrefixedString(int prefixLength,
CharsetDecoder decoder)
Reads a string which has a length field before the actual encoded string, using the specified decoder and returns it. |
|
abstract short |
getShort()
|
|
abstract short |
getShort(int index)
|
|
abstract IoBuffer |
getSlice(int length)
TODO document me. |
|
abstract IoBuffer |
getSlice(int index,
int length)
TODO document me. |
|
abstract String |
getString(CharsetDecoder decoder)
Reads a NUL -terminated string from this buffer using the
specified decoder and returns it. |
|
abstract String |
getString(int fieldSize,
CharsetDecoder decoder)
Reads a NUL -terminated string from this buffer using the
specified decoder and returns it. |
|
abstract short |
getUnsigned()
Reads one unsigned byte as a short integer. |
|
abstract short |
getUnsigned(int index)
Reads one byte as an unsigned short integer. |
|
abstract long |
getUnsignedInt()
Reads four bytes unsigned integer. |
|
abstract long |
getUnsignedInt(int index)
Reads four bytes unsigned integer. |
|
abstract int |
getUnsignedMediumInt()
Relative get method for reading an unsigned medium int value. |
|
abstract int |
getUnsignedMediumInt(int index)
Absolute get method for reading an unsigned medium int value. |
|
abstract int |
getUnsignedShort()
Reads two bytes unsigned integer. |
|
abstract int |
getUnsignedShort(int index)
Reads two bytes unsigned integer. |
|
abstract boolean |
hasArray()
|
|
abstract boolean |
hasRemaining()
|
|
abstract int |
indexOf(byte b)
Returns the first occurence position of the specified byte from the current position to the current limit. |
|
abstract boolean |
isAutoExpand()
Returns true if and only if autoExpand is turned on. |
|
abstract boolean |
isAutoShrink()
Returns true if and only if autoShrink is turned on. |
|
abstract boolean |
isDerived()
returns true if and only if this buffer is derived from other buffer via duplicate() , slice() or asReadOnlyBuffer() . |
|
abstract boolean |
isDirect()
|
|
abstract boolean |
isReadOnly()
|
|
static boolean |
isUseDirectBuffer()
Returns true if and only if a direct buffer is allocated by default when the type of the new buffer is not specified. |
|
abstract int |
limit()
|
|
abstract IoBuffer |
limit(int newLimit)
|
|
abstract IoBuffer |
mark()
|
|
abstract int |
markValue()
Returns the position of the current mark. |
|
abstract int |
minimumCapacity()
Returns the minimum capacity of this buffer which is used to determine the new capacity of the buffer shrunk by compact() and
shrink() operation. |
|
abstract IoBuffer |
minimumCapacity(int minimumCapacity)
Sets the minimum capacity of this buffer which is used to determine the new capacity of the buffer shrunk by compact() and
shrink() operation. |
|
protected static int |
normalizeCapacity(int requestedCapacity)
Normalizes the specified capacity of the buffer to power of 2, which is often helpful for optimal memory usage and performance. |
|
abstract ByteOrder |
order()
|
|
abstract IoBuffer |
order(ByteOrder bo)
|
|
abstract int |
position()
|
|
abstract IoBuffer |
position(int newPosition)
|
|
abstract boolean |
prefixedDataAvailable(int prefixLength)
Returns true if this buffer contains a data which has a data length as a prefix and the buffer has remaining data as enough as specified in the data length field. |
|
abstract boolean |
prefixedDataAvailable(int prefixLength,
int maxDataLength)
Returns true if this buffer contains a data which has a data length as a prefix and the buffer has remaining data as enough as specified in the data length field. |
|
abstract IoBuffer |
put(byte b)
|
|
abstract IoBuffer |
put(byte[] src)
|
|
abstract IoBuffer |
put(byte[] src,
int offset,
int length)
|
|
abstract IoBuffer |
put(ByteBuffer src)
Writes the content of the specified src into this buffer. |
|
abstract IoBuffer |
put(int index,
byte b)
|
|
abstract IoBuffer |
put(IoBuffer src)
Writes the content of the specified src into this buffer. |
|
abstract IoBuffer |
putChar(char value)
|
|
abstract IoBuffer |
putChar(int index,
char value)
|
|
abstract IoBuffer |
putDouble(double value)
|
|
abstract IoBuffer |
putDouble(int index,
double value)
|
|
abstract IoBuffer |
putEnum(Enum<?> e)
Writes an enum's ordinal value to the buffer as a byte. |
|
abstract IoBuffer |
putEnum(int index,
Enum<?> e)
Writes an enum's ordinal value to the buffer as a byte. |
|
abstract IoBuffer |
putEnumInt(Enum<?> e)
Writes an enum's ordinal value to the buffer as an integer. |
|
abstract IoBuffer |
putEnumInt(int index,
Enum<?> e)
Writes an enum's ordinal value to the buffer as an integer. |
|
abstract
|
putEnumSet(int index,
Set<E> set)
Writes the specified Set to the buffer as a byte sized bit vector. |
|
abstract
|
putEnumSet(Set<E> set)
Writes the specified Set to the buffer as a byte sized bit vector. |
|
abstract
|
putEnumSetInt(int index,
Set<E> set)
Writes the specified Set to the buffer as an int sized bit vector. |
|
abstract
|
putEnumSetInt(Set<E> set)
Writes the specified Set to the buffer as an int sized bit vector. |
|
abstract
|
putEnumSetLong(int index,
Set<E> set)
Writes the specified Set to the buffer as a long sized bit vector. |
|
abstract
|
putEnumSetLong(Set<E> set)
Writes the specified Set to the buffer as a long sized bit vector. |
|
abstract
|
putEnumSetShort(int index,
Set<E> set)
Writes the specified Set to the buffer as a short sized bit vector. |
|
abstract
|
putEnumSetShort(Set<E> set)
Writes the specified Set to the buffer as a short sized bit vector. |
|
abstract IoBuffer |
putEnumShort(Enum<?> e)
Writes an enum's ordinal value to the buffer as a short. |
|
abstract IoBuffer |
putEnumShort(int index,
Enum<?> e)
Writes an enum's ordinal value to the buffer as a short. |
|
abstract IoBuffer |
putFloat(float value)
|
|
abstract IoBuffer |
putFloat(int index,
float value)
|
|
abstract IoBuffer |
putInt(int value)
|
|
abstract IoBuffer |
putInt(int index,
int value)
|
|
abstract IoBuffer |
putLong(int index,
long value)
|
|
abstract IoBuffer |
putLong(long value)
|
|
abstract IoBuffer |
putMediumInt(int value)
Relative put method for writing a medium int value. |
|
abstract IoBuffer |
putMediumInt(int index,
int value)
Absolute put method for writing a medium int value. |
|
abstract IoBuffer |
putObject(Object o)
Writes the specified Java object to the buffer. |
|
abstract IoBuffer |
putPrefixedString(CharSequence in,
CharsetEncoder encoder)
Writes the content of in into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder . |
|
abstract IoBuffer |
putPrefixedString(CharSequence in,
int prefixLength,
CharsetEncoder encoder)
Writes the content of in into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder . |
|
abstract IoBuffer |
putPrefixedString(CharSequence val,
int prefixLength,
int padding,
byte padValue,
CharsetEncoder encoder)
Writes the content of in into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder . |
|
abstract IoBuffer |
putPrefixedString(CharSequence in,
int prefixLength,
int padding,
CharsetEncoder encoder)
Writes the content of in into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder . |
|
abstract IoBuffer |
putShort(int index,
short value)
|
|
abstract IoBuffer |
putShort(short value)
|
|
abstract IoBuffer |
putString(CharSequence val,
CharsetEncoder encoder)
Writes the content of in into this buffer using the
specified encoder . |
|
abstract IoBuffer |
putString(CharSequence val,
int fieldSize,
CharsetEncoder encoder)
Writes the content of in into this buffer as a
NUL -terminated string using the specified
encoder . |
|
abstract int |
remaining()
|
|
abstract IoBuffer |
reset()
|
|
abstract IoBuffer |
rewind()
|
|
static void |
setAllocator(IoBufferAllocator newAllocator)
Sets the allocator used by existing and new buffers |
|
abstract IoBuffer |
setAutoExpand(boolean autoExpand)
Turns on or off autoExpand. |
|
abstract IoBuffer |
setAutoShrink(boolean autoShrink)
Turns on or off autoShrink. |
|
static void |
setUseDirectBuffer(boolean useDirectBuffer)
Sets if a direct buffer should be allocated by default when the type of the new buffer is not specified. |
|
abstract IoBuffer |
shrink()
Changes the capacity of this buffer so this buffer occupies as less memory as possible while retaining the position, limit and the buffer content between the position and limit. |
|
abstract IoBuffer |
skip(int size)
Forwards the position of this buffer as the specified size
bytes. |
|
abstract IoBuffer |
slice()
|
|
abstract IoBuffer |
sweep()
Clears this buffer and fills its content with NUL. |
|
abstract IoBuffer |
sweep(byte value)
double Clears this buffer and fills its content with value. |
|
static IoBuffer |
wrap(byte[] byteArray)
Wraps the specified byte array into MINA heap buffer. |
|
static IoBuffer |
wrap(byte[] byteArray,
int offset,
int length)
Wraps the specified byte array into MINA heap buffer. |
|
static IoBuffer |
wrap(ByteBuffer nioBuffer)
Wraps the specified NIO ByteBuffer into MINA buffer. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface java.lang.Comparable |
---|
compareTo |
Field Detail |
---|
public static final IoBuffer EMPTY_BUFFER
Constructor Detail |
---|
protected IoBuffer()
Method Detail |
---|
public static IoBufferAllocator getAllocator()
public static void setAllocator(IoBufferAllocator newAllocator)
public static boolean isUseDirectBuffer()
public static void setUseDirectBuffer(boolean useDirectBuffer)
public static IoBuffer allocate(int capacity)
capacity
- the capacity of the buffersetUseDirectBuffer(boolean)
public static IoBuffer allocate(int capacity, boolean direct)
capacity
- the capacity of the bufferdirect
- true to get a direct buffer,
false to get a heap buffer.public static IoBuffer wrap(ByteBuffer nioBuffer)
ByteBuffer
into MINA buffer.
public static IoBuffer wrap(byte[] byteArray)
public static IoBuffer wrap(byte[] byteArray, int offset, int length)
protected static int normalizeCapacity(int requestedCapacity)
Integer.MAX_VALUE
, it
returns Integer.MAX_VALUE
. If it is zero, it returns zero.
public abstract void free()
IoBufferAllocator
implementations.
It is not mandatory to call this method, but you might want to invoke this
method for maximum performance.
public abstract ByteBuffer buf()
public abstract boolean isDirect()
ByteBuffer.isDirect()
public abstract boolean isDerived()
duplicate()
, slice()
or asReadOnlyBuffer()
.
public abstract boolean isReadOnly()
Buffer.isReadOnly()
public abstract int minimumCapacity()
compact()
and
shrink()
operation. The default value is the initial capacity
of the buffer.
public abstract IoBuffer minimumCapacity(int minimumCapacity)
compact()
and
shrink()
operation. The default value is the initial capacity
of the buffer.
public abstract int capacity()
Buffer.capacity()
public abstract IoBuffer capacity(int newCapacity)
public abstract boolean isAutoExpand()
public abstract IoBuffer setAutoExpand(boolean autoExpand)
public abstract boolean isAutoShrink()
public abstract IoBuffer setAutoShrink(boolean autoShrink)
public abstract IoBuffer expand(int expectedRemaining)
public abstract IoBuffer expand(int position, int expectedRemaining)
public abstract IoBuffer shrink()
minimumCapacity()
.
The mark is discarded once the capacity changes.
public abstract int position()
Buffer.position()
public abstract IoBuffer position(int newPosition)
Buffer.position(int)
public abstract int limit()
Buffer.limit()
public abstract IoBuffer limit(int newLimit)
Buffer.limit(int)
public abstract IoBuffer mark()
Buffer.mark()
public abstract int markValue()
public abstract IoBuffer reset()
Buffer.reset()
public abstract IoBuffer clear()
Buffer.clear()
public abstract IoBuffer sweep()
public abstract IoBuffer sweep(byte value)
public abstract IoBuffer flip()
Buffer.flip()
public abstract IoBuffer rewind()
Buffer.rewind()
public abstract int remaining()
Buffer.remaining()
public abstract boolean hasRemaining()
Buffer.hasRemaining()
public abstract IoBuffer duplicate()
ByteBuffer.duplicate()
public abstract IoBuffer slice()
ByteBuffer.slice()
public abstract IoBuffer asReadOnlyBuffer()
ByteBuffer.asReadOnlyBuffer()
public abstract boolean hasArray()
ByteBuffer.hasArray()
public abstract byte[] array()
ByteBuffer.array()
public abstract int arrayOffset()
ByteBuffer.arrayOffset()
public abstract byte get()
ByteBuffer.get()
public abstract short getUnsigned()
public abstract IoBuffer put(byte b)
ByteBuffer.put(byte)
public abstract byte get(int index)
ByteBuffer.get(int)
public abstract short getUnsigned(int index)
public abstract IoBuffer put(int index, byte b)
ByteBuffer.put(int, byte)
public abstract IoBuffer get(byte[] dst, int offset, int length)
ByteBuffer.get(byte[], int, int)
public abstract IoBuffer get(byte[] dst)
ByteBuffer.get(byte[])
public abstract IoBuffer getSlice(int index, int length)
public abstract IoBuffer getSlice(int length)
public abstract IoBuffer put(ByteBuffer src)
public abstract IoBuffer put(IoBuffer src)
public abstract IoBuffer put(byte[] src, int offset, int length)
ByteBuffer.put(byte[], int, int)
public abstract IoBuffer put(byte[] src)
ByteBuffer.put(byte[])
public abstract IoBuffer compact()
ByteBuffer.compact()
public abstract ByteOrder order()
ByteBuffer.order()
public abstract IoBuffer order(ByteOrder bo)
ByteBuffer.order(ByteOrder)
public abstract char getChar()
ByteBuffer.getChar()
public abstract IoBuffer putChar(char value)
ByteBuffer.putChar(char)
public abstract char getChar(int index)
ByteBuffer.getChar(int)
public abstract IoBuffer putChar(int index, char value)
ByteBuffer.putChar(int, char)
public abstract CharBuffer asCharBuffer()
ByteBuffer.asCharBuffer()
public abstract short getShort()
ByteBuffer.getShort()
public abstract int getUnsignedShort()
public abstract IoBuffer putShort(short value)
ByteBuffer.putShort(short)
public abstract short getShort(int index)
ByteBuffer.getShort()
public abstract int getUnsignedShort(int index)
public abstract IoBuffer putShort(int index, short value)
ByteBuffer.putShort(int, short)
public abstract ShortBuffer asShortBuffer()
ByteBuffer.asShortBuffer()
public abstract int getInt()
ByteBuffer.getInt()
public abstract long getUnsignedInt()
public abstract int getMediumInt()
Reads the next three bytes at this buffer's current position, composing them into an int value according to the current byte order, and then increments the position by three.
public abstract int getUnsignedMediumInt()
Reads the next three bytes at this buffer's current position, composing them into an int value according to the current byte order, and then increments the position by three.
public abstract int getMediumInt(int index)
Reads the next three bytes at this buffer's current position, composing them into an int value according to the current byte order.
index
- The index from which the medium int will be read
IndexOutOfBoundsException
- If index is negative
or not smaller than the buffer's limitpublic abstract int getUnsignedMediumInt(int index)
Reads the next three bytes at this buffer's current position, composing them into an int value according to the current byte order.
index
- The index from which the unsigned medium int will be read
IndexOutOfBoundsException
- If index is negative
or not smaller than the buffer's limitpublic abstract IoBuffer putMediumInt(int value)
Writes three bytes containing the given int value, in the current byte order, into this buffer at the current position, and then increments the position by three.
value
- The medium int value to be written
BufferOverflowException
- If there are fewer than three bytes
remaining in this buffer
ReadOnlyBufferException
- If this buffer is read-onlypublic abstract IoBuffer putMediumInt(int index, int value)
Writes three bytes containing the given int value, in the current byte order, into this buffer at the given index.
index
- The index at which the bytes will be writtenvalue
- The medium int value to be written
IndexOutOfBoundsException
- If index is negative
or not smaller than the buffer's limit,
minus three
ReadOnlyBufferException
- If this buffer is read-onlypublic abstract IoBuffer putInt(int value)
ByteBuffer.putInt(int)
public abstract int getInt(int index)
ByteBuffer.getInt(int)
public abstract long getUnsignedInt(int index)
public abstract IoBuffer putInt(int index, int value)
ByteBuffer.putInt(int, int)
public abstract IntBuffer asIntBuffer()
ByteBuffer.asIntBuffer()
public abstract long getLong()
ByteBuffer.getLong()
public abstract IoBuffer putLong(long value)
ByteBuffer.putLong(int, long)
public abstract long getLong(int index)
ByteBuffer.getLong(int)
public abstract IoBuffer putLong(int index, long value)
ByteBuffer.putLong(int, long)
public abstract LongBuffer asLongBuffer()
ByteBuffer.asLongBuffer()
public abstract float getFloat()
ByteBuffer.getFloat()
public abstract IoBuffer putFloat(float value)
ByteBuffer.putFloat(float)
public abstract float getFloat(int index)
ByteBuffer.getFloat(int)
public abstract IoBuffer putFloat(int index, float value)
ByteBuffer.putFloat(int, float)
public abstract FloatBuffer asFloatBuffer()
ByteBuffer.asFloatBuffer()
public abstract double getDouble()
ByteBuffer.getDouble()
public abstract IoBuffer putDouble(double value)
ByteBuffer.putDouble(double)
public abstract double getDouble(int index)
ByteBuffer.getDouble(int)
public abstract IoBuffer putDouble(int index, double value)
ByteBuffer.putDouble(int, double)
public abstract DoubleBuffer asDoubleBuffer()
ByteBuffer.asDoubleBuffer()
public abstract InputStream asInputStream()
InputStream
that reads the data from this buffer.
InputStream.read()
returns -1 if the buffer position
reaches to the limit.
public abstract OutputStream asOutputStream()
OutputStream
that appends the data into this buffer.
Please note that the OutputStream.write(int)
will throw a
BufferOverflowException
instead of an IOException
in case of buffer overflow. Please set autoExpand property by
calling setAutoExpand(boolean)
to prevent the unexpected runtime
exception.
public abstract String getHexDump()
public abstract String getHexDump(int lengthLimit)
lengthLimit
- The maximum number of bytes to dump from
the current buffer position.
public abstract String getString(CharsetDecoder decoder) throws CharacterCodingException
NUL
-terminated string from this buffer using the
specified decoder
and returns it. This method reads
until the limit of this buffer if no NUL is found.
CharacterCodingException
public abstract String getString(int fieldSize, CharsetDecoder decoder) throws CharacterCodingException
NUL
-terminated string from this buffer using the
specified decoder
and returns it.
fieldSize
- the maximum number of bytes to read
CharacterCodingException
public abstract IoBuffer putString(CharSequence val, CharsetEncoder encoder) throws CharacterCodingException
in
into this buffer using the
specified encoder
. This method doesn't terminate
string with NUL. You have to do it by yourself.
BufferOverflowException
- if the specified string doesn't fit
CharacterCodingException
public abstract IoBuffer putString(CharSequence val, int fieldSize, CharsetEncoder encoder) throws CharacterCodingException
in
into this buffer as a
NUL
-terminated string using the specified
encoder
.
If the charset name of the encoder is UTF-16, you cannot specify
odd fieldSize
, and this method will append two
NUL
s as a terminator.
Please note that this method doesn't terminate with NUL
if the input string is longer than fieldSize.
fieldSize
- the maximum number of bytes to write
CharacterCodingException
public abstract String getPrefixedString(CharsetDecoder decoder) throws CharacterCodingException
decoder
and returns it.
This method is a shortcut for getPrefixedString(2, decoder).
CharacterCodingException
public abstract String getPrefixedString(int prefixLength, CharsetDecoder decoder) throws CharacterCodingException
decoder
and returns it.
prefixLength
- the length of the length field (1, 2, or 4)
CharacterCodingException
public abstract IoBuffer putPrefixedString(CharSequence in, CharsetEncoder encoder) throws CharacterCodingException
in
into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder
.
This method is a shortcut for putPrefixedString(in, 2, 0, encoder).
BufferOverflowException
- if the specified string doesn't fit
CharacterCodingException
public abstract IoBuffer putPrefixedString(CharSequence in, int prefixLength, CharsetEncoder encoder) throws CharacterCodingException
in
into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder
.
This method is a shortcut for putPrefixedString(in, prefixLength, 0, encoder).
prefixLength
- the length of the length field (1, 2, or 4)
BufferOverflowException
- if the specified string doesn't fit
CharacterCodingException
public abstract IoBuffer putPrefixedString(CharSequence in, int prefixLength, int padding, CharsetEncoder encoder) throws CharacterCodingException
in
into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder
.
This method is a shortcut for putPrefixedString(in, prefixLength, padding, ( byte ) 0, encoder).
prefixLength
- the length of the length field (1, 2, or 4)padding
- the number of padded NULs (1 (or 0), 2, or 4)
BufferOverflowException
- if the specified string doesn't fit
CharacterCodingException
public abstract IoBuffer putPrefixedString(CharSequence val, int prefixLength, int padding, byte padValue, CharsetEncoder encoder) throws CharacterCodingException
in
into this buffer as a
string which has a 16-bit length field before the actual
encoded string, using the specified encoder
.
prefixLength
- the length of the length field (1, 2, or 4)padding
- the number of padded bytes (1 (or 0), 2, or 4)padValue
- the value of padded bytes
BufferOverflowException
- if the specified string doesn't fit
CharacterCodingException
public abstract Object getObject() throws ClassNotFoundException
ClassLoader
of the current thread.
ClassNotFoundException
public abstract Object getObject(ClassLoader classLoader) throws ClassNotFoundException
ClassNotFoundException
public abstract IoBuffer putObject(Object o)
public abstract boolean prefixedDataAvailable(int prefixLength)
prefixedDataAvailable(int, int)
instead.
prefixLength
- the length of the prefix field (1, 2, or 4)
IllegalArgumentException
- if prefixLength is wrong
BufferDataException
- if data length is negativepublic abstract boolean prefixedDataAvailable(int prefixLength, int maxDataLength)
prefixLength
- the length of the prefix field (1, 2, or 4)maxDataLength
- the allowed maximum of the read data length
IllegalArgumentException
- if prefixLength is wrong
BufferDataException
- if data length is negative or greater then maxDataLengthpublic abstract int indexOf(byte b)
public abstract IoBuffer skip(int size)
size
bytes.
public abstract IoBuffer fill(byte value, int size)
public abstract IoBuffer fillAndReset(byte value, int size)
public abstract IoBuffer fill(int size)
NUL (0x00)
.
This method moves buffer position forward.
public abstract IoBuffer fillAndReset(int size)
NUL (0x00)
.
This method does not change buffer position.
public abstract <E extends Enum<E>> E getEnum(Class<E> enumClass)
E
- The enum type to returnenumClass
- The enum's class objectpublic abstract <E extends Enum<E>> E getEnum(int index, Class<E> enumClass)
E
- The enum type to returnindex
- the index from which the byte will be readenumClass
- The enum's class objectpublic abstract <E extends Enum<E>> E getEnumShort(Class<E> enumClass)
E
- The enum type to returnenumClass
- The enum's class objectpublic abstract <E extends Enum<E>> E getEnumShort(int index, Class<E> enumClass)
E
- The enum type to returnindex
- the index from which the bytes will be readenumClass
- The enum's class objectpublic abstract <E extends Enum<E>> E getEnumInt(Class<E> enumClass)
E
- The enum type to returnenumClass
- The enum's class objectpublic abstract <E extends Enum<E>> E getEnumInt(int index, Class<E> enumClass)
E
- The enum type to returnindex
- the index from which the bytes will be readenumClass
- The enum's class objectpublic abstract IoBuffer putEnum(Enum<?> e)
e
- The enum to write to the bufferpublic abstract IoBuffer putEnum(int index, Enum<?> e)
index
- The index at which the byte will be writtene
- The enum to write to the bufferpublic abstract IoBuffer putEnumShort(Enum<?> e)
e
- The enum to write to the bufferpublic abstract IoBuffer putEnumShort(int index, Enum<?> e)
index
- The index at which the bytes will be writtene
- The enum to write to the bufferpublic abstract IoBuffer putEnumInt(Enum<?> e)
e
- The enum to write to the bufferpublic abstract IoBuffer putEnumInt(int index, Enum<?> e)
index
- The index at which the bytes will be writtene
- The enum to write to the bufferpublic abstract <E extends Enum<E>> EnumSet<E> getEnumSet(Class<E> enumClass)
EnumSet
.
Each bit is mapped to a value in the specified enum. The least significant bit maps to the first entry in the specified enum and each subsequent bit maps to each subsequent bit as mapped to the subsequent enum value.
E
- the enum typeenumClass
- the enum class used to create the EnumSet
public abstract <E extends Enum<E>> EnumSet<E> getEnumSet(int index, Class<E> enumClass)
EnumSet
.
E
- the enum typeindex
- the index from which the byte will be readenumClass
- the enum class used to create the EnumSet
getEnumSet(Class)
public abstract <E extends Enum<E>> EnumSet<E> getEnumSetShort(Class<E> enumClass)
EnumSet
.
E
- the enum typeenumClass
- the enum class used to create the EnumSet
getEnumSet(Class)
public abstract <E extends Enum<E>> EnumSet<E> getEnumSetShort(int index, Class<E> enumClass)
EnumSet
.
E
- the enum typeindex
- the index from which the bytes will be readenumClass
- the enum class used to create the EnumSet
getEnumSet(Class)
public abstract <E extends Enum<E>> EnumSet<E> getEnumSetInt(Class<E> enumClass)
EnumSet
.
E
- the enum typeenumClass
- the enum class used to create the EnumSet
getEnumSet(Class)
public abstract <E extends Enum<E>> EnumSet<E> getEnumSetInt(int index, Class<E> enumClass)
EnumSet
.
E
- the enum typeindex
- the index from which the bytes will be readenumClass
- the enum class used to create the EnumSet
getEnumSet(Class)
public abstract <E extends Enum<E>> EnumSet<E> getEnumSetLong(Class<E> enumClass)
EnumSet
.
E
- the enum typeenumClass
- the enum class used to create the EnumSet
getEnumSet(Class)
public abstract <E extends Enum<E>> EnumSet<E> getEnumSetLong(int index, Class<E> enumClass)
EnumSet
.
E
- the enum typeindex
- the index from which the bytes will be readenumClass
- the enum class used to create the EnumSet
getEnumSet(Class)
public abstract <E extends Enum<E>> IoBuffer putEnumSet(Set<E> set)
Set
to the buffer as a byte sized bit vector.
E
- the enum type of the Setset
- the enum set to write to the bufferpublic abstract <E extends Enum<E>> IoBuffer putEnumSet(int index, Set<E> set)
Set
to the buffer as a byte sized bit vector.
E
- the enum type of the Setindex
- the index at which the byte will be writtenset
- the enum set to write to the bufferpublic abstract <E extends Enum<E>> IoBuffer putEnumSetShort(Set<E> set)
Set
to the buffer as a short sized bit vector.
E
- the enum type of the Setset
- the enum set to write to the bufferpublic abstract <E extends Enum<E>> IoBuffer putEnumSetShort(int index, Set<E> set)
Set
to the buffer as a short sized bit vector.
E
- the enum type of the Setindex
- the index at which the bytes will be writtenset
- the enum set to write to the bufferpublic abstract <E extends Enum<E>> IoBuffer putEnumSetInt(Set<E> set)
Set
to the buffer as an int sized bit vector.
E
- the enum type of the Setset
- the enum set to write to the bufferpublic abstract <E extends Enum<E>> IoBuffer putEnumSetInt(int index, Set<E> set)
Set
to the buffer as an int sized bit vector.
E
- the enum type of the Setindex
- the index at which the bytes will be writtenset
- the enum set to write to the bufferpublic abstract <E extends Enum<E>> IoBuffer putEnumSetLong(Set<E> set)
Set
to the buffer as a long sized bit vector.
E
- the enum type of the Setset
- the enum set to write to the bufferpublic abstract <E extends Enum<E>> IoBuffer putEnumSetLong(int index, Set<E> set)
Set
to the buffer as a long sized bit vector.
E
- the enum type of the Setindex
- the index at which the bytes will be writtenset
- the enum set to write to the buffer
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |