Class IoBufferWrapper
- java.lang.Object
-
- com.google.code.yanf4j.buffer.IoBuffer
-
- com.google.code.yanf4j.buffer.IoBufferWrapper
-
- All Implemented Interfaces:
java.lang.Comparable<IoBuffer>
public class IoBufferWrapper extends IoBuffer
AIoBuffer
that wraps a buffer and proxies any operations to it.You can think this class like a
FilterOutputStream
. All operations are proxied by default so that you can extend this class and override existing operations selectively. You can introduce new operations, too.- Version:
- $Rev: 671827 $, $Date: 2008-06-26 10:49:48 +0200 (Thu, 26 Jun 2008) $
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
IoBufferWrapper(IoBuffer buf)
Create a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
array()
int
arrayOffset()
java.nio.CharBuffer
asCharBuffer()
java.nio.DoubleBuffer
asDoubleBuffer()
java.nio.FloatBuffer
asFloatBuffer()
java.io.InputStream
asInputStream()
Returns anInputStream
that reads the data from this buffer.java.nio.IntBuffer
asIntBuffer()
java.nio.LongBuffer
asLongBuffer()
java.io.OutputStream
asOutputStream()
Returns anOutputStream
that appends the data into this buffer.IoBuffer
asReadOnlyBuffer()
java.nio.ShortBuffer
asShortBuffer()
java.nio.ByteBuffer
buf()
Returns the underlying NIO buffer instance.int
capacity()
IoBuffer
capacity(int newCapacity)
Increases the capacity of this buffer.IoBuffer
clear()
IoBuffer
compact()
int
compareTo(IoBuffer that)
IoBuffer
duplicate()
boolean
equals(java.lang.Object ob)
IoBuffer
expand(int expectedRemaining)
Changes the capacity and limit of this buffer so this buffer get the specified expectedRemaining room from the current position.IoBuffer
expand(int pos, int expectedRemaining)
Changes the capacity and limit of this buffer so this buffer get the specified expectedRemaining room from the specified position.IoBuffer
fill(byte value, int size)
Fills this buffer with the specified value.IoBuffer
fill(int size)
Fills this buffer withNUL (0x00)
.IoBuffer
fillAndReset(byte value, int size)
Fills this buffer with the specified value.IoBuffer
fillAndReset(int size)
Fills this buffer withNUL (0x00)
.IoBuffer
flip()
void
free()
Declares this buffer and all its derived buffers are not used anymore so that it can be reused by someIoBufferAllocator
implementations.byte
get()
IoBuffer
get(byte[] dst)
IoBuffer
get(byte[] dst, int offset, int length)
byte
get(int index)
char
getChar()
char
getChar(int index)
double
getDouble()
double
getDouble(int index)
<E extends java.lang.Enum<E>>
EgetEnum(int index, java.lang.Class<E> enumClass)
Reads a byte from the buffer and returns the correlating enum constant defined by the specified enum type.<E extends java.lang.Enum<E>>
EgetEnum(java.lang.Class<E> enumClass)
Reads a byte from the buffer and returns the correlating enum constant defined by the specified enum type.<E extends java.lang.Enum<E>>
EgetEnumInt(int index, java.lang.Class<E> enumClass)
Reads an int from the buffer and returns the correlating enum constant defined by the specified enum type.<E extends java.lang.Enum<E>>
EgetEnumInt(java.lang.Class<E> enumClass)
Reads an int from the buffer and returns the correlating enum constant defined by the specified enum type.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSet(int index, java.lang.Class<E> enumClass)
Reads a byte sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSet(java.lang.Class<E> enumClass)
Reads a byte sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSetInt(int index, java.lang.Class<E> enumClass)
Reads an int sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSetInt(java.lang.Class<E> enumClass)
Reads an int sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSetLong(int index, java.lang.Class<E> enumClass)
Reads a long sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSetLong(java.lang.Class<E> enumClass)
Reads a long sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSetShort(int index, java.lang.Class<E> enumClass)
Reads a short sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
java.util.EnumSet<E>getEnumSetShort(java.lang.Class<E> enumClass)
Reads a short sized bit vector and converts it to anEnumSet
.<E extends java.lang.Enum<E>>
EgetEnumShort(int index, java.lang.Class<E> enumClass)
Reads a short from the buffer and returns the correlating enum constant defined by the specified enum type.<E extends java.lang.Enum<E>>
EgetEnumShort(java.lang.Class<E> enumClass)
Reads a short from the buffer and returns the correlating enum constant defined by the specified enum type.float
getFloat()
float
getFloat(int index)
java.lang.String
getHexDump()
Returns hexdump of this buffer.java.lang.String
getHexDump(int lengthLimit)
Return hexdump of this buffer with limited length.int
getInt()
int
getInt(int index)
long
getLong()
long
getLong(int index)
int
getMediumInt()
Relative get method for reading a medium int value.int
getMediumInt(int index)
Absolute get method for reading a medium int value.java.lang.Object
getObject()
Reads a Java object from the buffer using the contextClassLoader
of the current thread.java.lang.Object
getObject(java.lang.ClassLoader classLoader)
Reads a Java object from the buffer using the specified classLoader.IoBuffer
getParentBuffer()
Returns the parent buffer that this buffer wrapped.java.lang.String
getPrefixedString(int prefixLength, java.nio.charset.CharsetDecoder decoder)
Reads a string which has a length field before the actual encoded string, using the specifieddecoder
and returns it.java.lang.String
getPrefixedString(java.nio.charset.CharsetDecoder decoder)
Reads a string which has a 16-bit length field before the actual encoded string, using the specifieddecoder
and returns it.short
getShort()
short
getShort(int index)
IoBuffer
getSlice(int length)
TODO document me.IoBuffer
getSlice(int index, int length)
TODO document me.java.lang.String
getString(int fieldSize, java.nio.charset.CharsetDecoder decoder)
Reads aNUL
-terminated string from this buffer using the specifieddecoder
and returns it.java.lang.String
getString(java.nio.charset.CharsetDecoder decoder)
Reads aNUL
-terminated string from this buffer using the specifieddecoder
and returns it.short
getUnsigned()
Reads one unsigned byte as a short integer.short
getUnsigned(int index)
Reads one byte as an unsigned short integer.long
getUnsignedInt()
Reads four bytes unsigned integer.long
getUnsignedInt(int index)
Reads four bytes unsigned integer.int
getUnsignedMediumInt()
Relative get method for reading an unsigned medium int value.int
getUnsignedMediumInt(int index)
Absolute get method for reading an unsigned medium int value.int
getUnsignedShort()
Reads two bytes unsigned integer.int
getUnsignedShort(int index)
Reads two bytes unsigned integer.boolean
hasArray()
int
hashCode()
boolean
hasRemaining()
int
indexOf(byte b)
Returns the first occurence position of the specified byte from the current position to the current limit.boolean
isAutoExpand()
Returns true if and only if autoExpand is turned on.boolean
isAutoShrink()
Returns true if and only if autoShrink is turned on.boolean
isDerived()
returns true if and only if this buffer is derived from other buffer viaIoBuffer.duplicate()
,IoBuffer.slice()
orIoBuffer.asReadOnlyBuffer()
.boolean
isDirect()
boolean
isReadOnly()
int
limit()
IoBuffer
limit(int newLimit)
IoBuffer
mark()
int
markValue()
Returns the position of the current mark.int
minimumCapacity()
Returns the minimum capacity of this buffer which is used to determine the new capacity of the buffer shrunk byIoBuffer.compact()
andIoBuffer.shrink()
operation.IoBuffer
minimumCapacity(int minimumCapacity)
Sets the minimum capacity of this buffer which is used to determine the new capacity of the buffer shrunk byIoBuffer.compact()
andIoBuffer.shrink()
operation.java.nio.ByteOrder
order()
IoBuffer
order(java.nio.ByteOrder bo)
int
position()
IoBuffer
position(int newPosition)
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.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.IoBuffer
put(byte b)
IoBuffer
put(byte[] src)
IoBuffer
put(byte[] src, int offset, int length)
IoBuffer
put(int index, byte b)
IoBuffer
put(IoBuffer src)
Writes the content of the specified src into this buffer.IoBuffer
put(java.nio.ByteBuffer src)
Writes the content of the specified src into this buffer.IoBuffer
putChar(char value)
IoBuffer
putChar(int index, char value)
IoBuffer
putDouble(double value)
IoBuffer
putDouble(int index, double value)
IoBuffer
putEnum(int index, java.lang.Enum<?> e)
Writes an enum's ordinal value to the buffer as a byte.IoBuffer
putEnum(java.lang.Enum<?> e)
Writes an enum's ordinal value to the buffer as a byte.IoBuffer
putEnumInt(int index, java.lang.Enum<?> e)
Writes an enum's ordinal value to the buffer as an integer.IoBuffer
putEnumInt(java.lang.Enum<?> e)
Writes an enum's ordinal value to the buffer as an integer.<E extends java.lang.Enum<E>>
IoBufferputEnumSet(int index, java.util.Set<E> set)
Writes the specifiedSet
to the buffer as a byte sized bit vector.<E extends java.lang.Enum<E>>
IoBufferputEnumSet(java.util.Set<E> set)
Writes the specifiedSet
to the buffer as a byte sized bit vector.<E extends java.lang.Enum<E>>
IoBufferputEnumSetInt(int index, java.util.Set<E> set)
Writes the specifiedSet
to the buffer as an int sized bit vector.<E extends java.lang.Enum<E>>
IoBufferputEnumSetInt(java.util.Set<E> set)
Writes the specifiedSet
to the buffer as an int sized bit vector.<E extends java.lang.Enum<E>>
IoBufferputEnumSetLong(int index, java.util.Set<E> set)
Writes the specifiedSet
to the buffer as a long sized bit vector.<E extends java.lang.Enum<E>>
IoBufferputEnumSetLong(java.util.Set<E> set)
Writes the specifiedSet
to the buffer as a long sized bit vector.<E extends java.lang.Enum<E>>
IoBufferputEnumSetShort(int index, java.util.Set<E> set)
Writes the specifiedSet
to the buffer as a short sized bit vector.<E extends java.lang.Enum<E>>
IoBufferputEnumSetShort(java.util.Set<E> set)
Writes the specifiedSet
to the buffer as a short sized bit vector.IoBuffer
putEnumShort(int index, java.lang.Enum<?> e)
Writes an enum's ordinal value to the buffer as a short.IoBuffer
putEnumShort(java.lang.Enum<?> e)
Writes an enum's ordinal value to the buffer as a short.IoBuffer
putFloat(float value)
IoBuffer
putFloat(int index, float value)
IoBuffer
putInt(int value)
IoBuffer
putInt(int index, int value)
IoBuffer
putLong(int index, long value)
IoBuffer
putLong(long value)
IoBuffer
putMediumInt(int value)
Relative put method for writing a medium int value.IoBuffer
putMediumInt(int index, int value)
Absolute put method for writing a medium int value.IoBuffer
putObject(java.lang.Object o)
Writes the specified Java object to the buffer.IoBuffer
putPrefixedString(java.lang.CharSequence in, int prefixLength, int padding, byte padValue, java.nio.charset.CharsetEncoder encoder)
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
.IoBuffer
putPrefixedString(java.lang.CharSequence in, int prefixLength, int padding, java.nio.charset.CharsetEncoder encoder)
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
.IoBuffer
putPrefixedString(java.lang.CharSequence in, int prefixLength, java.nio.charset.CharsetEncoder encoder)
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
.IoBuffer
putPrefixedString(java.lang.CharSequence in, java.nio.charset.CharsetEncoder encoder)
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
.IoBuffer
putShort(int index, short value)
IoBuffer
putShort(short value)
IoBuffer
putString(java.lang.CharSequence in, int fieldSize, java.nio.charset.CharsetEncoder encoder)
Writes the content ofin
into this buffer as aNUL
-terminated string using the specifiedencoder
.IoBuffer
putString(java.lang.CharSequence in, java.nio.charset.CharsetEncoder encoder)
Writes the content ofin
into this buffer using the specifiedencoder
.int
remaining()
IoBuffer
reset()
IoBuffer
rewind()
IoBuffer
setAutoExpand(boolean autoExpand)
Turns on or off autoExpand.IoBuffer
setAutoShrink(boolean autoShrink)
Turns on or off autoShrink.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.IoBuffer
skip(int size)
Forwards the position of this buffer as the specifiedsize
bytes.IoBuffer
slice()
IoBuffer
sweep()
Clears this buffer and fills its content with NUL.IoBuffer
sweep(byte value)
double Clears this buffer and fills its content with value.java.lang.String
toString()
-
Methods inherited from class com.google.code.yanf4j.buffer.IoBuffer
allocate, allocate, getAllocator, isUseDirectBuffer, normalizeCapacity, setAllocator, setUseDirectBuffer, wrap, wrap, wrap
-
-
-
-
Field Detail
-
buf
private final IoBuffer buf
The buffer proxied by this proxy.
-
-
Constructor Detail
-
IoBufferWrapper
protected IoBufferWrapper(IoBuffer buf)
Create a new instance.- Parameters:
buf
- the buffer to be proxied
-
-
Method Detail
-
getParentBuffer
public IoBuffer getParentBuffer()
Returns the parent buffer that this buffer wrapped.
-
isDirect
public boolean isDirect()
-
buf
public java.nio.ByteBuffer buf()
Description copied from class:IoBuffer
Returns the underlying NIO buffer instance.
-
position
public IoBuffer position(int newPosition)
-
limit
public IoBuffer limit(int newLimit)
-
sweep
public IoBuffer sweep()
Description copied from class:IoBuffer
Clears this buffer and fills its content with NUL. The position is set to zero, the limit is set to the capacity, and the mark is discarded.
-
sweep
public IoBuffer sweep(byte value)
Description copied from class:IoBuffer
double Clears this buffer and fills its content with value. The position is set to zero, the limit is set to the capacity, and the mark is discarded.
-
remaining
public int remaining()
-
hasRemaining
public boolean hasRemaining()
- Specified by:
hasRemaining
in classIoBuffer
- See Also:
Buffer.hasRemaining()
-
getUnsigned
public short getUnsigned()
Description copied from class:IoBuffer
Reads one unsigned byte as a short integer.- Specified by:
getUnsigned
in classIoBuffer
-
getUnsigned
public short getUnsigned(int index)
Description copied from class:IoBuffer
Reads one byte as an unsigned short integer.- Specified by:
getUnsigned
in classIoBuffer
-
put
public IoBuffer put(int index, byte b)
-
get
public IoBuffer get(byte[] dst, int offset, int length)
-
getSlice
public IoBuffer getSlice(int index, int length)
Description copied from class:IoBuffer
TODO document me.
-
getSlice
public IoBuffer getSlice(int length)
Description copied from class:IoBuffer
TODO document me.
-
get
public IoBuffer get(byte[] dst)
-
put
public IoBuffer put(IoBuffer src)
Description copied from class:IoBuffer
Writes the content of the specified src into this buffer.
-
put
public IoBuffer put(java.nio.ByteBuffer src)
Description copied from class:IoBuffer
Writes the content of the specified src into this buffer.
-
put
public IoBuffer put(byte[] src, int offset, int length)
-
put
public IoBuffer put(byte[] src)
-
compact
public IoBuffer compact()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object ob)
- Overrides:
equals
in classjava.lang.Object
-
compareTo
public int compareTo(IoBuffer that)
-
order
public java.nio.ByteOrder order()
-
order
public IoBuffer order(java.nio.ByteOrder bo)
-
getChar
public char getChar()
-
putChar
public IoBuffer putChar(char value)
-
getChar
public char getChar(int index)
-
putChar
public IoBuffer putChar(int index, char value)
-
asCharBuffer
public java.nio.CharBuffer asCharBuffer()
- Specified by:
asCharBuffer
in classIoBuffer
- See Also:
ByteBuffer.asCharBuffer()
-
getShort
public short getShort()
-
getUnsignedShort
public int getUnsignedShort()
Description copied from class:IoBuffer
Reads two bytes unsigned integer.- Specified by:
getUnsignedShort
in classIoBuffer
-
putShort
public IoBuffer putShort(short value)
-
getShort
public short getShort(int index)
-
getUnsignedShort
public int getUnsignedShort(int index)
Description copied from class:IoBuffer
Reads two bytes unsigned integer.- Specified by:
getUnsignedShort
in classIoBuffer
-
putShort
public IoBuffer putShort(int index, short value)
-
asShortBuffer
public java.nio.ShortBuffer asShortBuffer()
- Specified by:
asShortBuffer
in classIoBuffer
- See Also:
ByteBuffer.asShortBuffer()
-
getUnsignedInt
public long getUnsignedInt()
Description copied from class:IoBuffer
Reads four bytes unsigned integer.- Specified by:
getUnsignedInt
in classIoBuffer
-
putInt
public IoBuffer putInt(int value)
-
getInt
public int getInt(int index)
-
getUnsignedInt
public long getUnsignedInt(int index)
Description copied from class:IoBuffer
Reads four bytes unsigned integer.- Specified by:
getUnsignedInt
in classIoBuffer
-
putInt
public IoBuffer putInt(int index, int value)
-
asIntBuffer
public java.nio.IntBuffer asIntBuffer()
- Specified by:
asIntBuffer
in classIoBuffer
- See Also:
ByteBuffer.asIntBuffer()
-
getLong
public long getLong()
-
putLong
public IoBuffer putLong(long value)
-
getLong
public long getLong(int index)
-
putLong
public IoBuffer putLong(int index, long value)
-
asLongBuffer
public java.nio.LongBuffer asLongBuffer()
- Specified by:
asLongBuffer
in classIoBuffer
- See Also:
ByteBuffer.asLongBuffer()
-
getFloat
public float getFloat()
-
putFloat
public IoBuffer putFloat(float value)
-
getFloat
public float getFloat(int index)
-
putFloat
public IoBuffer putFloat(int index, float value)
-
asFloatBuffer
public java.nio.FloatBuffer asFloatBuffer()
- Specified by:
asFloatBuffer
in classIoBuffer
- See Also:
ByteBuffer.asFloatBuffer()
-
getDouble
public double getDouble()
-
putDouble
public IoBuffer putDouble(double value)
-
getDouble
public double getDouble(int index)
-
putDouble
public IoBuffer putDouble(int index, double value)
-
asDoubleBuffer
public java.nio.DoubleBuffer asDoubleBuffer()
- Specified by:
asDoubleBuffer
in classIoBuffer
- See Also:
ByteBuffer.asDoubleBuffer()
-
getHexDump
public java.lang.String getHexDump()
Description copied from class:IoBuffer
Returns hexdump of this buffer. The data and pointer are not changed as a result of this method call.- Specified by:
getHexDump
in classIoBuffer
- Returns:
- hexidecimal representation of this buffer
-
getString
public java.lang.String getString(int fieldSize, java.nio.charset.CharsetDecoder decoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Reads aNUL
-terminated string from this buffer using the specifieddecoder
and returns it.
-
getString
public java.lang.String getString(java.nio.charset.CharsetDecoder decoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Reads aNUL
-terminated string from this buffer using the specifieddecoder
and returns it. This method reads until the limit of this buffer if no NUL is found.
-
getPrefixedString
public java.lang.String getPrefixedString(java.nio.charset.CharsetDecoder decoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Reads a string which has a 16-bit length field before the actual encoded string, using the specifieddecoder
and returns it. This method is a shortcut for getPrefixedString(2, decoder).- Specified by:
getPrefixedString
in classIoBuffer
- Throws:
java.nio.charset.CharacterCodingException
-
getPrefixedString
public java.lang.String getPrefixedString(int prefixLength, java.nio.charset.CharsetDecoder decoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Reads a string which has a length field before the actual encoded string, using the specifieddecoder
and returns it.- Specified by:
getPrefixedString
in classIoBuffer
- Parameters:
prefixLength
- the length of the length field (1, 2, or 4)- Throws:
java.nio.charset.CharacterCodingException
-
putString
public IoBuffer putString(java.lang.CharSequence in, int fieldSize, java.nio.charset.CharsetEncoder encoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Writes the content ofin
into this buffer as aNUL
-terminated string using the specifiedencoder
.If the charset name of the encoder is UTF-16, you cannot specify odd
fieldSize
, and this method will append twoNUL
s as a terminator.Please note that this method doesn't terminate with
NUL
if the input string is longer than fieldSize.
-
putString
public IoBuffer putString(java.lang.CharSequence in, java.nio.charset.CharsetEncoder encoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Writes the content ofin
into this buffer using the specifiedencoder
. This method doesn't terminate string with NUL. You have to do it by yourself.
-
putPrefixedString
public IoBuffer putPrefixedString(java.lang.CharSequence in, java.nio.charset.CharsetEncoder encoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
. This method is a shortcut for putPrefixedString(in, 2, 0, encoder).- Specified by:
putPrefixedString
in classIoBuffer
- Throws:
java.nio.charset.CharacterCodingException
-
putPrefixedString
public IoBuffer putPrefixedString(java.lang.CharSequence in, int prefixLength, java.nio.charset.CharsetEncoder encoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
. This method is a shortcut for putPrefixedString(in, prefixLength, 0, encoder).- Specified by:
putPrefixedString
in classIoBuffer
prefixLength
- the length of the length field (1, 2, or 4)- Throws:
java.nio.charset.CharacterCodingException
-
putPrefixedString
public IoBuffer putPrefixedString(java.lang.CharSequence in, int prefixLength, int padding, java.nio.charset.CharsetEncoder encoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
. This method is a shortcut for putPrefixedString(in, prefixLength, padding, ( byte ) 0, encoder) .- Specified by:
putPrefixedString
in classIoBuffer
prefixLength
- the length of the length field (1, 2, or 4)padding
- the number of padded NULs (1 (or 0), 2, or 4)- Throws:
java.nio.charset.CharacterCodingException
-
putPrefixedString
public IoBuffer putPrefixedString(java.lang.CharSequence in, int prefixLength, int padding, byte padValue, java.nio.charset.CharsetEncoder encoder) throws java.nio.charset.CharacterCodingException
Description copied from class:IoBuffer
Writes the content ofin
into this buffer as a string which has a 16-bit length field before the actual encoded string, using the specifiedencoder
.- Specified by:
putPrefixedString
in classIoBuffer
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- Throws:
java.nio.charset.CharacterCodingException
-
skip
public IoBuffer skip(int size)
Description copied from class:IoBuffer
Forwards the position of this buffer as the specifiedsize
bytes.
-
fill
public IoBuffer fill(byte value, int size)
Description copied from class:IoBuffer
Fills this buffer with the specified value. This method moves buffer position forward.
-
fillAndReset
public IoBuffer fillAndReset(byte value, int size)
Description copied from class:IoBuffer
Fills this buffer with the specified value. This method does not change buffer position.- Specified by:
fillAndReset
in classIoBuffer
-
fill
public IoBuffer fill(int size)
Description copied from class:IoBuffer
Fills this buffer withNUL (0x00)
. This method moves buffer position forward.
-
fillAndReset
public IoBuffer fillAndReset(int size)
Description copied from class:IoBuffer
Fills this buffer withNUL (0x00)
. This method does not change buffer position.- Specified by:
fillAndReset
in classIoBuffer
-
isAutoExpand
public boolean isAutoExpand()
Description copied from class:IoBuffer
Returns true if and only if autoExpand is turned on.- Specified by:
isAutoExpand
in classIoBuffer
-
setAutoExpand
public IoBuffer setAutoExpand(boolean autoExpand)
Description copied from class:IoBuffer
Turns on or off autoExpand.- Specified by:
setAutoExpand
in classIoBuffer
-
expand
public IoBuffer expand(int pos, int expectedRemaining)
Description copied from class:IoBuffer
Changes the capacity and limit of this buffer so this buffer get the specified expectedRemaining room from the specified position. This method works even if you didn't set autoExpand to true.
-
expand
public IoBuffer expand(int expectedRemaining)
Description copied from class:IoBuffer
Changes the capacity and limit of this buffer so this buffer get the specified expectedRemaining room from the current position. This method works even if you didn't set autoExpand to true.
-
getObject
public java.lang.Object getObject() throws java.lang.ClassNotFoundException
Description copied from class:IoBuffer
Reads a Java object from the buffer using the contextClassLoader
of the current thread.
-
getObject
public java.lang.Object getObject(java.lang.ClassLoader classLoader) throws java.lang.ClassNotFoundException
Description copied from class:IoBuffer
Reads a Java object from the buffer using the specified classLoader.
-
putObject
public IoBuffer putObject(java.lang.Object o)
Description copied from class:IoBuffer
Writes the specified Java object to the buffer.
-
asInputStream
public java.io.InputStream asInputStream()
Description copied from class:IoBuffer
Returns anInputStream
that reads the data from this buffer.InputStream.read()
returns -1 if the buffer position reaches to the limit.- Specified by:
asInputStream
in classIoBuffer
-
asOutputStream
public java.io.OutputStream asOutputStream()
Description copied from class:IoBuffer
Returns anOutputStream
that appends the data into this buffer. Please note that theOutputStream.write(int)
will throw aBufferOverflowException
instead of anIOException
in case of buffer overflow. Please set autoExpand property by callingIoBuffer.setAutoExpand(boolean)
to prevent the unexpected runtime exception.- Specified by:
asOutputStream
in classIoBuffer
-
duplicate
public IoBuffer duplicate()
-
asReadOnlyBuffer
public IoBuffer asReadOnlyBuffer()
- Specified by:
asReadOnlyBuffer
in classIoBuffer
- See Also:
ByteBuffer.asReadOnlyBuffer()
-
arrayOffset
public int arrayOffset()
- Specified by:
arrayOffset
in classIoBuffer
- See Also:
ByteBuffer.arrayOffset()
-
minimumCapacity
public int minimumCapacity()
Description copied from class:IoBuffer
Returns the minimum capacity of this buffer which is used to determine the new capacity of the buffer shrunk byIoBuffer.compact()
andIoBuffer.shrink()
operation. The default value is the initial capacity of the buffer.- Specified by:
minimumCapacity
in classIoBuffer
-
minimumCapacity
public IoBuffer minimumCapacity(int minimumCapacity)
Description copied from class:IoBuffer
Sets the minimum capacity of this buffer which is used to determine the new capacity of the buffer shrunk byIoBuffer.compact()
andIoBuffer.shrink()
operation. The default value is the initial capacity of the buffer.- Specified by:
minimumCapacity
in classIoBuffer
-
capacity
public IoBuffer capacity(int newCapacity)
Description copied from class:IoBuffer
Increases the capacity of this buffer. If the new capacity is less than or equal to the current capacity, this method returns silently. If the new capacity is greater than the current capacity, the buffer is reallocated while retaining the position, limit, mark and the content of the buffer.
-
isReadOnly
public boolean isReadOnly()
- Specified by:
isReadOnly
in classIoBuffer
- See Also:
Buffer.isReadOnly()
-
markValue
public int markValue()
Description copied from class:IoBuffer
Returns the position of the current mark. This method returns -1 if no mark is set.
-
hasArray
public boolean hasArray()
-
free
public void free()
Description copied from class:IoBuffer
Declares this buffer and all its derived buffers are not used anymore so that it can be reused by someIoBufferAllocator
implementations. It is not mandatory to call this method, but you might want to invoke this method for maximum performance.
-
isDerived
public boolean isDerived()
Description copied from class:IoBuffer
returns true if and only if this buffer is derived from other buffer viaIoBuffer.duplicate()
,IoBuffer.slice()
orIoBuffer.asReadOnlyBuffer()
.
-
isAutoShrink
public boolean isAutoShrink()
Description copied from class:IoBuffer
Returns true if and only if autoShrink is turned on.- Specified by:
isAutoShrink
in classIoBuffer
-
setAutoShrink
public IoBuffer setAutoShrink(boolean autoShrink)
Description copied from class:IoBuffer
Turns on or off autoShrink.- Specified by:
setAutoShrink
in classIoBuffer
-
shrink
public IoBuffer shrink()
Description copied from class:IoBuffer
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. The capacity of the buffer never becomes less thanIoBuffer.minimumCapacity()
. The mark is discarded once the capacity changes.
-
getMediumInt
public int getMediumInt()
Description copied from class:IoBuffer
Relative get method for reading a medium int value.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.
- Specified by:
getMediumInt
in classIoBuffer
- Returns:
- The medium int value at the buffer's current position
-
getUnsignedMediumInt
public int getUnsignedMediumInt()
Description copied from class:IoBuffer
Relative get method for reading an unsigned medium int value.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.
- Specified by:
getUnsignedMediumInt
in classIoBuffer
- Returns:
- The unsigned medium int value at the buffer's current position
-
getMediumInt
public int getMediumInt(int index)
Description copied from class:IoBuffer
Absolute get method for reading a medium int value.Reads the next three bytes at this buffer's current position, composing them into an int value according to the current byte order.
- Specified by:
getMediumInt
in classIoBuffer
- Parameters:
index
- The index from which the medium int will be read- Returns:
- The medium int value at the given index
-
getUnsignedMediumInt
public int getUnsignedMediumInt(int index)
Description copied from class:IoBuffer
Absolute get method for reading an unsigned medium int value.Reads the next three bytes at this buffer's current position, composing them into an int value according to the current byte order.
- Specified by:
getUnsignedMediumInt
in classIoBuffer
- Parameters:
index
- The index from which the unsigned medium int will be read- Returns:
- The unsigned medium int value at the given index
-
putMediumInt
public IoBuffer putMediumInt(int value)
Description copied from class:IoBuffer
Relative put method for writing a medium 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.
- Specified by:
putMediumInt
in classIoBuffer
- Parameters:
value
- The medium int value to be written- Returns:
- This buffer
-
putMediumInt
public IoBuffer putMediumInt(int index, int value)
Description copied from class:IoBuffer
Absolute put method for writing a medium int value.Writes three bytes containing the given int value, in the current byte order, into this buffer at the given index.
- Specified by:
putMediumInt
in classIoBuffer
- Parameters:
index
- The index at which the bytes will be writtenvalue
- The medium int value to be written- Returns:
- This buffer
-
getHexDump
public java.lang.String getHexDump(int lengthLimit)
Description copied from class:IoBuffer
Return hexdump of this buffer with limited length.- Specified by:
getHexDump
in classIoBuffer
- Parameters:
lengthLimit
- The maximum number of bytes to dump from the current buffer position.- Returns:
- hexidecimal representation of this buffer
-
prefixedDataAvailable
public boolean prefixedDataAvailable(int prefixLength)
Description copied from class:IoBuffer
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. This method is identical with prefixedDataAvailable( prefixLength, Integer.MAX_VALUE ). Please not that using this method can allow DoS (Denial of Service) attack in case the remote peer sends too big data length value. It is recommended to useIoBuffer.prefixedDataAvailable(int, int)
instead.- Specified by:
prefixedDataAvailable
in classIoBuffer
- Parameters:
prefixLength
- the length of the prefix field (1, 2, or 4)
-
prefixedDataAvailable
public boolean prefixedDataAvailable(int prefixLength, int maxDataLength)
Description copied from class:IoBuffer
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.- Specified by:
prefixedDataAvailable
in classIoBuffer
- Parameters:
prefixLength
- the length of the prefix field (1, 2, or 4)maxDataLength
- the allowed maximum of the read data length
-
indexOf
public int indexOf(byte b)
Description copied from class:IoBuffer
Returns the first occurence position of the specified byte from the current position to the current limit.
-
getEnum
public <E extends java.lang.Enum<E>> E getEnum(java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a byte from the buffer and returns the correlating enum constant defined by the specified enum type.
-
getEnum
public <E extends java.lang.Enum<E>> E getEnum(int index, java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a byte from the buffer and returns the correlating enum constant defined by the specified enum type.
-
getEnumShort
public <E extends java.lang.Enum<E>> E getEnumShort(java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a short from the buffer and returns the correlating enum constant defined by the specified enum type.- Specified by:
getEnumShort
in classIoBuffer
- Type Parameters:
E
- The enum type to return- Parameters:
enumClass
- The enum's class object
-
getEnumShort
public <E extends java.lang.Enum<E>> E getEnumShort(int index, java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a short from the buffer and returns the correlating enum constant defined by the specified enum type.- Specified by:
getEnumShort
in classIoBuffer
- Type Parameters:
E
- The enum type to return- Parameters:
index
- the index from which the bytes will be readenumClass
- The enum's class object
-
getEnumInt
public <E extends java.lang.Enum<E>> E getEnumInt(java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads an int from the buffer and returns the correlating enum constant defined by the specified enum type.- Specified by:
getEnumInt
in classIoBuffer
- Type Parameters:
E
- The enum type to return- Parameters:
enumClass
- The enum's class object
-
getEnumInt
public <E extends java.lang.Enum<E>> E getEnumInt(int index, java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads an int from the buffer and returns the correlating enum constant defined by the specified enum type.- Specified by:
getEnumInt
in classIoBuffer
- Type Parameters:
E
- The enum type to return- Parameters:
index
- the index from which the bytes will be readenumClass
- The enum's class object
-
putEnum
public IoBuffer putEnum(java.lang.Enum<?> e)
Description copied from class:IoBuffer
Writes an enum's ordinal value to the buffer as a byte.
-
putEnum
public IoBuffer putEnum(int index, java.lang.Enum<?> e)
Description copied from class:IoBuffer
Writes an enum's ordinal value to the buffer as a byte.
-
putEnumShort
public IoBuffer putEnumShort(java.lang.Enum<?> e)
Description copied from class:IoBuffer
Writes an enum's ordinal value to the buffer as a short.- Specified by:
putEnumShort
in classIoBuffer
- Parameters:
e
- The enum to write to the buffer
-
putEnumShort
public IoBuffer putEnumShort(int index, java.lang.Enum<?> e)
Description copied from class:IoBuffer
Writes an enum's ordinal value to the buffer as a short.- Specified by:
putEnumShort
in classIoBuffer
- Parameters:
index
- The index at which the bytes will be writtene
- The enum to write to the buffer
-
putEnumInt
public IoBuffer putEnumInt(java.lang.Enum<?> e)
Description copied from class:IoBuffer
Writes an enum's ordinal value to the buffer as an integer.- Specified by:
putEnumInt
in classIoBuffer
- Parameters:
e
- The enum to write to the buffer
-
putEnumInt
public IoBuffer putEnumInt(int index, java.lang.Enum<?> e)
Description copied from class:IoBuffer
Writes an enum's ordinal value to the buffer as an integer.- Specified by:
putEnumInt
in classIoBuffer
- Parameters:
index
- The index at which the bytes will be writtene
- The enum to write to the buffer
-
getEnumSet
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSet(java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a byte sized bit vector and converts it to anEnumSet
.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.
- Specified by:
getEnumSet
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
enumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
-
getEnumSet
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSet(int index, java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a byte sized bit vector and converts it to anEnumSet
.- Specified by:
getEnumSet
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
index
- the index from which the byte will be readenumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
- See Also:
IoBuffer.getEnumSet(Class)
-
getEnumSetShort
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSetShort(java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a short sized bit vector and converts it to anEnumSet
.- Specified by:
getEnumSetShort
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
enumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
- See Also:
IoBuffer.getEnumSet(Class)
-
getEnumSetShort
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSetShort(int index, java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a short sized bit vector and converts it to anEnumSet
.- Specified by:
getEnumSetShort
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
index
- the index from which the bytes will be readenumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
- See Also:
IoBuffer.getEnumSet(Class)
-
getEnumSetInt
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSetInt(java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads an int sized bit vector and converts it to anEnumSet
.- Specified by:
getEnumSetInt
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
enumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
- See Also:
IoBuffer.getEnumSet(Class)
-
getEnumSetInt
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSetInt(int index, java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads an int sized bit vector and converts it to anEnumSet
.- Specified by:
getEnumSetInt
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
index
- the index from which the bytes will be readenumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
- See Also:
IoBuffer.getEnumSet(Class)
-
getEnumSetLong
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSetLong(java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a long sized bit vector and converts it to anEnumSet
.- Specified by:
getEnumSetLong
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
enumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
- See Also:
IoBuffer.getEnumSet(Class)
-
getEnumSetLong
public <E extends java.lang.Enum<E>> java.util.EnumSet<E> getEnumSetLong(int index, java.lang.Class<E> enumClass)
Description copied from class:IoBuffer
Reads a long sized bit vector and converts it to anEnumSet
.- Specified by:
getEnumSetLong
in classIoBuffer
- Type Parameters:
E
- the enum type- Parameters:
index
- the index from which the bytes will be readenumClass
- the enum class used to create the EnumSet- Returns:
- the EnumSet representation of the bit vector
- See Also:
IoBuffer.getEnumSet(Class)
-
putEnumSet
public <E extends java.lang.Enum<E>> IoBuffer putEnumSet(java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as a byte sized bit vector.- Specified by:
putEnumSet
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
set
- the enum set to write to the buffer
-
putEnumSet
public <E extends java.lang.Enum<E>> IoBuffer putEnumSet(int index, java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as a byte sized bit vector.- Specified by:
putEnumSet
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
index
- the index at which the byte will be writtenset
- the enum set to write to the buffer
-
putEnumSetShort
public <E extends java.lang.Enum<E>> IoBuffer putEnumSetShort(java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as a short sized bit vector.- Specified by:
putEnumSetShort
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
set
- the enum set to write to the buffer
-
putEnumSetShort
public <E extends java.lang.Enum<E>> IoBuffer putEnumSetShort(int index, java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as a short sized bit vector.- Specified by:
putEnumSetShort
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
index
- the index at which the bytes will be writtenset
- the enum set to write to the buffer
-
putEnumSetInt
public <E extends java.lang.Enum<E>> IoBuffer putEnumSetInt(java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as an int sized bit vector.- Specified by:
putEnumSetInt
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
set
- the enum set to write to the buffer
-
putEnumSetInt
public <E extends java.lang.Enum<E>> IoBuffer putEnumSetInt(int index, java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as an int sized bit vector.- Specified by:
putEnumSetInt
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
index
- the index at which the bytes will be writtenset
- the enum set to write to the buffer
-
putEnumSetLong
public <E extends java.lang.Enum<E>> IoBuffer putEnumSetLong(java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as a long sized bit vector.- Specified by:
putEnumSetLong
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
set
- the enum set to write to the buffer
-
putEnumSetLong
public <E extends java.lang.Enum<E>> IoBuffer putEnumSetLong(int index, java.util.Set<E> set)
Description copied from class:IoBuffer
Writes the specifiedSet
to the buffer as a long sized bit vector.- Specified by:
putEnumSetLong
in classIoBuffer
- Type Parameters:
E
- the enum type of the Set- Parameters:
index
- the index at which the bytes will be writtenset
- the enum set to write to the buffer
-
-