public final class JCSharedBuffer extends Object implements Closeable
JCSharedBuffer
class shares a byte buffer between CLR and JVM.
Modifier and Type | Method and Description |
---|---|
byte[] |
array()
Returns the byte array that backs this
buffer (optional operation).
|
int |
arrayOffset()
Returns the offset within this buffer's backing array of the first
element of the buffer (optional operation).
|
CharBuffer |
asCharBuffer()
Creates a view of this byte buffer as a char buffer.
|
DoubleBuffer |
asDoubleBuffer()
Creates a view of this byte buffer as a double buffer.
|
FloatBuffer |
asFloatBuffer()
Creates a view of this byte buffer as a float buffer.
|
IntBuffer |
asIntBuffer()
Creates a view of this byte buffer as an int buffer.
|
LongBuffer |
asLongBuffer()
Creates a view of this byte buffer as a long buffer.
|
JCSharedBuffer |
asReadOnlyBuffer()
Creates a new, read-only byte buffer that shares this buffer's
content.
|
ShortBuffer |
asShortBuffer()
Creates a view of this byte buffer as a short buffer.
|
int |
capacity()
Returns this buffer's capacity.
|
JCSharedBuffer |
clear()
Clears this buffer.
|
void |
close() |
JCSharedBuffer |
compact()
Compacts this buffer (optional operation).
|
int |
compareTo(JCSharedBuffer that)
Compares this buffer to another.
|
static ByteBuffer |
Create(byte[] array)
Creates a new
ByteBuffer from an array of bytes |
static JCSharedBuffer |
Create(ByteBuffer buf)
Creates a new
JCSharedBuffer from a ByteBuffer |
static CharBuffer |
Create(char[] array)
Creates a new
CharBuffer from an array of char |
static DoubleBuffer |
Create(double[] array)
Creates a new
DoubleBuffer from an array of double |
static FloatBuffer |
Create(float[] array)
Creates a new
FloatBuffer from an array of float |
static ByteBuffer |
Create(int length)
Creates a new
ByteBuffer with a specified length |
static IntBuffer |
Create(int[] array)
Creates a new
IntBuffer from an array of int |
static LongBuffer |
Create(long[] array)
Creates a new
LongBuffer from an array of long |
static ShortBuffer |
Create(short[] array)
Creates a new
ShortBuffer from an array of short |
JCSharedBuffer |
duplicate()
Creates a new byte buffer that shares this buffer's content.
|
boolean |
equals(Object ob)
Tells whether or not this buffer is equal to another object.
|
JCSharedBuffer |
flip()
Flips this buffer.
|
byte |
get()
Relative get method.
|
JCSharedBuffer |
get(byte[] dst)
Relative bulk get method.
|
JCSharedBuffer |
get(byte[] dst,
int offset,
int length)
Relative bulk get method.
|
byte |
get(int index)
Absolute get method.
|
ByteBuffer |
getBuffer()
Returns the underlying
ByteBuffer instance |
char |
getChar()
Relative get method for reading a char value.
|
char |
getChar(int index)
Absolute get method for reading a char value.
|
double |
getDouble()
Relative get method for reading a double value.
|
double |
getDouble(int index)
Absolute get method for reading a double value.
|
float |
getFloat()
Relative get method for reading a float value.
|
float |
getFloat(int index)
Absolute get method for reading a float value.
|
int |
getInt()
Relative get method for reading an int value.
|
int |
getInt(int index)
Absolute get method for reading an int value.
|
long |
getLong()
Relative get method for reading a long value.
|
long |
getLong(int index)
Absolute get method for reading a long value.
|
static boolean |
getReuseByteBuffer()
Report if reuse of
ByteBuffer is enabled/disabled |
short |
getShort()
Relative get method for reading a short value.
|
short |
getShort(int index)
Absolute get method for reading a short value.
|
boolean |
hasArray()
Tells whether or not this buffer is backed by an accessible byte
array.
|
int |
hashCode()
Returns the current hash code of this buffer.
|
boolean |
hasRemaining()
Tells whether there are any elements between the current position and
the limit.
|
boolean |
isDirect()
Tells whether or not this byte buffer is direct.
|
boolean |
isReadOnly()
Tells whether or not this buffer is read-only.
|
int |
limit()
Returns this buffer's limit.
|
JCSharedBuffer |
limit(int newLimit)
Sets this buffer's limit.
|
JCSharedBuffer |
mark()
Sets this buffer's mark at its position.
|
ByteOrder |
order()
Retrieves this buffer's byte order.
|
JCSharedBuffer |
order(ByteOrder bo)
Modifies this buffer's byte order.
|
int |
position()
Returns this buffer's position.
|
JCSharedBuffer |
position(int newPosition)
Sets this buffer's position.
|
JCSharedBuffer |
put(byte b)
Relative put method (optional operation).
|
JCSharedBuffer |
put(byte[] src)
Relative bulk put method (optional operation).
|
JCSharedBuffer |
put(byte[] src,
int offset,
int length)
Relative bulk put method (optional operation).
|
JCSharedBuffer |
put(ByteBuffer src)
Relative bulk put method (optional operation).
|
JCSharedBuffer |
put(int index,
byte b)
Absolute put method (optional operation).
|
JCSharedBuffer |
putChar(char value)
Relative put method for writing a char
value (optional operation).
|
JCSharedBuffer |
putChar(int index,
char value)
Absolute put method for writing a char
value (optional operation).
|
JCSharedBuffer |
putDouble(double value)
Relative put method for writing a double
value (optional operation).
|
JCSharedBuffer |
putDouble(int index,
double value)
Absolute put method for writing a double
value (optional operation).
|
JCSharedBuffer |
putFloat(float value)
Relative put method for writing a float
value (optional operation).
|
JCSharedBuffer |
putFloat(int index,
float value)
Absolute put method for writing a float
value (optional operation).
|
JCSharedBuffer |
putInt(int value)
Relative put method for writing an int
value (optional operation).
|
JCSharedBuffer |
putInt(int index,
int value)
Absolute put method for writing an int
value (optional operation).
|
JCSharedBuffer |
putLong(int index,
long value)
Absolute put method for writing a long
value (optional operation).
|
JCSharedBuffer |
putLong(long value)
Relative put method for writing a long
value (optional operation).
|
JCSharedBuffer |
putShort(int index,
short value)
Absolute put method for writing a short
value (optional operation).
|
JCSharedBuffer |
putShort(short value)
Relative put method for writing a short
value (optional operation).
|
int |
remaining()
Returns the number of elements between the current position and the
limit.
|
JCSharedBuffer |
reset()
Resets this buffer's position to the previously-marked position.
|
JCSharedBuffer |
rewind()
Rewinds this buffer.
|
static void |
setReuseByteBuffer(boolean val)
Change this value to enable/disable reuse of
ByteBuffer |
ByteBuffer |
slice()
Creates a new byte buffer whose content is a shared subsequence of
this buffer's content.
|
String |
toString()
Returns a string summarizing the state of this buffer.
|
public static JCSharedBuffer Create(ByteBuffer buf) throws IOException
JCSharedBuffer
from a ByteBuffer
buf
- The ByteBuffer
used to initialize the
JCSharedBuffer
JCSharedBuffer
can be managed with the same API of a
ByteBuffer
IOException
- Thrown if something goes wrong managing memory of
buf
, see getCause
for deep informationpublic static ByteBuffer Create(int length) throws IOException
ByteBuffer
with a specified lengthlength
- The length to be used to initialize the ByteBuffer
ByteBuffer
will have the ByteOrder
of the platform,
capacity and limit equals to the lengthIOException
- Thrown if something goes wrong allocating memory for
ByteBuffer
, see getCause
for deep informationpublic static ByteBuffer Create(byte[] array) throws IOException
ByteBuffer
from an array of bytesarray
- The array of bytes to be used to initialize the
ByteBuffer
ByteBuffer
containing, within the unmanaged memory, the
copy of array
, the returned ByteBuffer
will have the
ByteOrder
of the platformIOException
- Thrown if something goes wrong allocating memory for
ByteBuffer
, see getCause
for deep informationpublic static CharBuffer Create(char[] array) throws IOException
CharBuffer
from an array of chararray
- The array of char to be used to initialize the
CharBuffer
CharBuffer
containing, within the unmanaged memory, the
copy of array
, the returned CharBuffer
will have the
ByteOrder
of the platformIOException
- Thrown if something goes wrong allocating memory for
CharBuffer
, see getCause
for deep informationpublic static DoubleBuffer Create(double[] array) throws IOException
DoubleBuffer
from an array of doublearray
- The array of double to be used to initialize the
DoubleBuffer
DoubleBuffer
containing, within the unmanaged memory, the
copy of array
, the returned DoubleBuffer
will have
the
ByteOrder
of the platformIOException
- Thrown if something goes wrong allocating memory for
DoubleBuffer
, see getCause
for deep informationpublic static FloatBuffer Create(float[] array) throws IOException
FloatBuffer
from an array of floatarray
- The array of float to be used to initialize the
FloatBuffer
FloatBuffer
containing, within the unmanaged memory, the
copy of array
, the returned FloatBuffer
will have the
ByteOrder
of the platformIOException
- Thrown if something goes wrong allocating memory for
FloatBuffer
, see getCause
for deep informationpublic static IntBuffer Create(int[] array) throws IOException
IntBuffer
from an array of intarray
- The array of int to be used to initialize the
IntBuffer
IntBuffer
containing, within the unmanaged memory, the
copy of array
, the returned IntBuffer
will have the
ByteOrder
of the platformIOException
- Thrown if something goes wrong allocating memory for
IntBuffer
, see getCause
for deep informationpublic static LongBuffer Create(long[] array) throws IOException
LongBuffer
from an array of longarray
- The array of long to be used to initialize the
LongBuffer
LongBuffer
containing, within the unmanaged memory, the
copy of array
, the returned LongBuffer
will have the
ByteOrder
of the platformIOException
- Thrown if something goes wrong allocating memory for
LongBuffer
, see getCause
for deep informationpublic static ShortBuffer Create(short[] array) throws IOException
ShortBuffer
from an array of shortarray
- The array of short to be used to initialize the
ShortBuffer
ShortBuffer
containing, within the unmanaged memory, the
copy of array
, the returned ShortBuffer
will have the
ByteOrder
of the platformIOException
- Thrown if something goes wrong allocating memory for
ShortBuffer
, see getCause
for deep informationpublic static boolean getReuseByteBuffer()
ByteBuffer
is enabled/disabledByteBuffer
is enabled, otherwise falsepublic static void setReuseByteBuffer(boolean val)
ByteBuffer
val
- Set to false if the ByteBuffer
generated using
Create(byte[])
shall be discardedpublic void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
public ByteBuffer getBuffer()
ByteBuffer
instanceByteBuffer
public final int capacity()
public final int position()
public final JCSharedBuffer position(int newPosition)
newPosition
- The new position value; must be non-negative
and no larger than the current limitIllegalArgumentException
- If the preconditions on newPosition
do not holdpublic final int limit()
public final JCSharedBuffer limit(int newLimit)
newLimit
- The new limit value; must be non-negative
and no larger than this buffer's capacityIllegalArgumentException
- If the preconditions on newLimit
do
not holdpublic final JCSharedBuffer mark()
public final JCSharedBuffer reset()
Invoking this method neither changes nor discards the mark's value.
InvalidMarkException
- If the mark has not been setpublic final JCSharedBuffer clear()
Invoke this method before using a sequence of channel-read or put operations to fill this buffer. For example:
buf.clear(); // Prepare buffer for reading in.read(buf); // Read data
This method does not actually erase the data in the buffer, but it is named as if it did because it will most often be used in situations in which that might as well be the case.
public final JCSharedBuffer flip()
After a sequence of channel-read or put operations, invoke this method to prepare for a sequence of channel-write or relative get operations. For example:
buf.put(magic); // Prepend header in.read(buf); // Read data into rest of buffer buf.flip(); // Flip buffer out.write(buf); // Write header + data to channel
This method is often used in conjunction with the compact
method when transferring data from
one place to another.
public final JCSharedBuffer rewind()
Invoke this method before a sequence of channel-write or get operations, assuming that the limit has already been set appropriately. For example:
out.write(buf); // Write remaining data buf.rewind(); // Rewind buffer buf.get(array); // Copy data into array
public final int remaining()
public final boolean hasRemaining()
true
if, and only if, there is at least one element
remaining in this bufferpublic final boolean isReadOnly()
true
if, and only if, this buffer is read-onlypublic final boolean hasArray()
If this method returns true
then the array
and arrayOffset
methods may safely be invoked.
true
if, and only if, this buffer
is backed by an array and is not read-onlypublic final int arrayOffset()
If this buffer is backed by an array then buffer position p
corresponds to array index p + arrayOffset()
.
Invoke the hasArray
method before invoking this
method in order to ensure that this buffer has an accessible backing
array.
ReadOnlyBufferException
- If this buffer is backed by an array
but is read-onlyUnsupportedOperationException
- If this buffer is not backed by an
accessible arraypublic final boolean isDirect()
true
if, and only if, this buffer is directpublic ByteBuffer slice()
The content of the new buffer will start at this buffer's current position. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer, and its mark will be undefined. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.
public final JCSharedBuffer duplicate() throws IOException
The content of the new buffer will be that of this buffer. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's capacity, limit, position, and mark values will be identical to those of this buffer. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.
IOException
- Thrown if something goes wrong managing memory of
original
JCSharedBuffer
, see getCause
for deep informationpublic final JCSharedBuffer asReadOnlyBuffer() throws IOException
The content of the new buffer will be that of this buffer. Changes to this buffer's content will be visible in the new buffer; the new buffer itself, however, will be read-only and will not allow the shared content to be modified. The two buffers' position, limit, and mark values will be independent.
The new buffer's capacity, limit, position, and mark values will be identical to those of this buffer.
If this buffer is itself read-only then this method behaves in
exactly the same way as the duplicate
method.
IOException
- Thrown if something goes wrong managing memory of
original
JCSharedBuffer
, see getCause
for deep informationpublic final byte get()
BufferUnderflowException
- If the buffer's current position is not
smaller than its limitpublic final JCSharedBuffer put(byte b)
Writes the given byte into this buffer at the current position, and then increments the position.
b
- The byte to be writtenBufferOverflowException
- If this buffer's current position is not
smaller than its limitReadOnlyBufferException
- If this buffer is read-onlypublic final byte get(int index)
index
- The index from which the byte will be readIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limitpublic final JCSharedBuffer put(int index, byte b)
Writes the given byte into this buffer at the given index.
index
- The index at which the byte will be writtenb
- The byte value to be writtenIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limitReadOnlyBufferException
- If this buffer is read-onlypublic JCSharedBuffer get(byte[] dst, int offset, int length)
This method transfers bytes from this buffer into the given
destination array. If there are fewer bytes remaining in the
buffer than are required to satisfy the request, that is, if
length
>
remaining()
, then no
bytes are transferred and a BufferUnderflowException
is
thrown.
Otherwise, this method copies length
bytes from this
buffer into the given array, starting at the current position of this
buffer and at the given offset in the array. The position of this
buffer is then incremented by length
.
In other words, an invocation of this method of the form
src.get(dst, off, len)
has exactly the same effect as
the loop
for (int i = off; i < off + len; i++)
dst[i] = src.get():
except that it first checks that there are sufficient bytes in
this buffer and it is potentially much more efficient.dst
- The array into which bytes are to be writtenoffset
- The offset within the array of the first byte to be
written; must be non-negative and no larger than
dst.length
length
- The maximum number of bytes to be written to the given
array; must be non-negative and no larger than
dst.length - offset
BufferUnderflowException
- If there are fewer than length
bytes
remaining in this bufferIndexOutOfBoundsException
- If the preconditions on the offset
and length
parameters do not holdpublic JCSharedBuffer get(byte[] dst)
This method transfers bytes from this buffer into the given
destination array. An invocation of this method of the form
src.get(a)
behaves in exactly the same way as the invocation
src.get(a, 0, a.length)
dst
- The destination arrayBufferUnderflowException
- If there are fewer than length
bytes
remaining in this bufferpublic JCSharedBuffer put(ByteBuffer src)
This method transfers the bytes remaining in the given source
buffer into this buffer. If there are more bytes remaining in the
source buffer than in this buffer, that is, if
src.remaining()
>
remaining()
,
then no bytes are transferred and a BufferOverflowException
is thrown.
Otherwise, this method copies
n = src.remaining()
bytes from the given
buffer into this buffer, starting at each buffer's current position.
The positions of both buffers are then incremented by n.
In other words, an invocation of this method of the form
dst.put(src)
has exactly the same effect as the loop
while (src.hasRemaining()) dst.put(src.get());except that it first checks that there is sufficient space in this buffer and it is potentially much more efficient.
src
- The source buffer from which bytes are to be read;
must not be this bufferUnsupportedOperationException
- The method is not implementedpublic JCSharedBuffer put(byte[] src, int offset, int length)
This method transfers bytes into this buffer from the given
source array. If there are more bytes to be copied from the array
than remain in this buffer, that is, if
length
>
remaining()
, then no
bytes are transferred and a BufferOverflowException
is
thrown.
Otherwise, this method copies length
bytes from the
given array into this buffer, starting at the given offset in the array
and at the current position of this buffer. The position of this buffer
is then incremented by length
.
In other words, an invocation of this method of the form
dst.put(src, off, len)
has exactly the same effect as
the loop
for (int i = off; i < off + len; i++)
dst.put(a[i]);
except that it first checks that there is sufficient space in this
buffer and it is potentially much more efficient.src
- The array from which bytes are to be readoffset
- The offset within the array of the first byte to be read;
must be non-negative and no larger than array.length
length
- The number of bytes to be read from the given array;
must be non-negative and no larger than
array.length - offset
BufferOverflowException
- If there is insufficient space in this
bufferIndexOutOfBoundsException
- If the preconditions on the offset
and length
parameters do not holdReadOnlyBufferException
- If this buffer is read-onlypublic final JCSharedBuffer put(byte[] src)
This method transfers the entire content of the given source
byte array into this buffer. An invocation of this method of the
form dst.put(a)
behaves in exactly the same way as the
invocation
dst.put(a, 0, a.length)
src
- The source arrayBufferOverflowException
- If there is insufficient space in this bufferReadOnlyBufferException
- If this buffer is read-onlypublic final byte[] array()
Modifications to this buffer's content will cause the returned array's content to be modified, and vice versa.
Invoke the hasArray
method before invoking this
method in order to ensure that this buffer has an accessible backing
array.
ReadOnlyBufferException
- If this buffer is backed by an array
but is read-onlyUnsupportedOperationException
- If this buffer is not backed by an
accessible arraypublic final JCSharedBuffer compact()
The bytes between the buffer's current position and its limit,
if any, are copied to the beginning of the buffer. That is, the
byte at index p = position()
is copied
to index zero, the byte at index p + 1 is copied
to index one, and so forth until the byte at index
limit()
- 1 is copied to index
n = limit()
- 1
- p.
The buffer's position is then set to n+1 and its limit is set to
its capacity. The mark, if defined, is discarded.
The buffer's position is set to the number of bytes copied, rather than to zero, so that an invocation of this method can be followed immediately by an invocation of another relative put method.
Invoke this method after writing data from a buffer in case the
write was incomplete. The following loop, for example, copies bytes
from one channel to another via the buffer buf
:
buf.clear(); // Prepare buffer for use while (in.read(buf) >= 0 || buf.position != 0) { buf.flip(); out.write(buf); buf.compact(); // In case of partial write }
ReadOnlyBufferException
- If this buffer is read-onlypublic String toString()
public int hashCode()
The hash code of a byte buffer depends only upon its remaining
elements; that is, upon the elements from position()
up to, and
including, the element at limit()
- 1
.
Because buffer hash codes are content-dependent, it is inadvisable to use buffers as keys in hash maps or similar data structures unless it is known that their contents will not change.
public boolean equals(Object ob)
Two byte buffers are equal if, and only if,
They have the same element type,
They have the same number of remaining elements, and
The two sequences of remaining elements, considered independently of their starting positions, are pointwise equal.
A byte buffer is not equal to any other type of object.
public int compareTo(JCSharedBuffer that)
Two byte buffers are compared by comparing their sequences of
remaining elements lexicographically, without regard to the starting
position of each sequence within its corresponding buffer.
Pairs of byte
elements are compared as if by invoking
Byte.compare(byte,byte)
.
A byte buffer is not comparable to any other type of object.
that
- The object to which this buffer is to be comparedpublic final ByteOrder order()
The byte order is used when reading or writing multibyte values, and
when creating buffers that are views of this byte buffer. The order of
a newly-created byte buffer is always BIG_ENDIAN
.
public final JCSharedBuffer order(ByteOrder bo)
bo
- The new byte order,
either BIG_ENDIAN
or LITTLE_ENDIAN
public final char getChar()
Reads the next two bytes at this buffer's current position, composing them into a char value according to the current byte order, and then increments the position by two.
BufferUnderflowException
- If there are fewer than two bytes
remaining in this bufferpublic final JCSharedBuffer putChar(char value)
Writes two bytes containing the given char value, in the current byte order, into this buffer at the current position, and then increments the position by two.
value
- The char value to be writtenBufferOverflowException
- If there are fewer than two bytes
remaining in this bufferReadOnlyBufferException
- If this buffer is read-onlypublic final char getChar(int index)
Reads two bytes at the given index, composing them into a char value according to the current byte order.
index
- The index from which the bytes will be readIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus onepublic final JCSharedBuffer putChar(int index, char value)
Writes two bytes containing the given char value, in the current byte order, into this buffer at the given index.
index
- The index at which the bytes will be writtenvalue
- The char value to be writtenIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus oneReadOnlyBufferException
- If this buffer is read-onlypublic final CharBuffer asCharBuffer()
The content of the new buffer will start at this buffer's current position. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by two, and its mark will be undefined. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.
public final short getShort()
Reads the next two bytes at this buffer's current position, composing them into a short value according to the current byte order, and then increments the position by two.
BufferUnderflowException
- If there are fewer than two bytes
remaining in this bufferpublic final JCSharedBuffer putShort(short value)
Writes two bytes containing the given short value, in the current byte order, into this buffer at the current position, and then increments the position by two.
value
- The short value to be writtenBufferOverflowException
- If there are fewer than two bytes
remaining in this bufferReadOnlyBufferException
- If this buffer is read-onlypublic final short getShort(int index)
Reads two bytes at the given index, composing them into a short value according to the current byte order.
index
- The index from which the bytes will be readIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus onepublic final JCSharedBuffer putShort(int index, short value)
Writes two bytes containing the given short value, in the current byte order, into this buffer at the given index.
index
- The index at which the bytes will be writtenvalue
- The short value to be writtenIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus oneReadOnlyBufferException
- If this buffer is read-onlypublic final ShortBuffer asShortBuffer()
The content of the new buffer will start at this buffer's current position. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by two, and its mark will be undefined. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.
public final int getInt()
Reads the next four 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 four.
BufferUnderflowException
- If there are fewer than four bytes
remaining in this bufferpublic final JCSharedBuffer putInt(int value)
Writes four bytes containing the given int value, in the current byte order, into this buffer at the current position, and then increments the position by four.
value
- The int value to be writtenBufferOverflowException
- If there are fewer than four bytes
remaining in this bufferReadOnlyBufferException
- If this buffer is read-onlypublic final int getInt(int index)
Reads four bytes at the given index, composing them into a int value according to the current byte order.
index
- The index from which the bytes will be readIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus threepublic final JCSharedBuffer putInt(int index, int value)
Writes four 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 int value to be writtenIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus threeReadOnlyBufferException
- If this buffer is read-onlypublic final IntBuffer asIntBuffer()
The content of the new buffer will start at this buffer's current position. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by four, and its mark will be undefined. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.
public final long getLong()
Reads the next eight bytes at this buffer's current position, composing them into a long value according to the current byte order, and then increments the position by eight.
BufferUnderflowException
- If there are fewer than eight bytes
remaining in this bufferpublic final JCSharedBuffer putLong(long value)
Writes eight bytes containing the given long value, in the current byte order, into this buffer at the current position, and then increments the position by eight.
value
- The long value to be writtenBufferOverflowException
- If there are fewer than eight bytes
remaining in this bufferReadOnlyBufferException
- If this buffer is read-onlypublic final long getLong(int index)
Reads eight bytes at the given index, composing them into a long value according to the current byte order.
index
- The index from which the bytes will be readIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus sevenpublic final JCSharedBuffer putLong(int index, long value)
Writes eight bytes containing the given long value, in the current byte order, into this buffer at the given index.
index
- The index at which the bytes will be writtenvalue
- The long value to be writtenIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus sevenReadOnlyBufferException
- If this buffer is read-onlypublic final LongBuffer asLongBuffer()
The content of the new buffer will start at this buffer's current position. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by eight, and its mark will be undefined. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.
public final float getFloat()
Reads the next four bytes at this buffer's current position, composing them into a float value according to the current byte order, and then increments the position by four.
BufferUnderflowException
- If there are fewer than four bytes
remaining in this bufferpublic final JCSharedBuffer putFloat(float value)
Writes four bytes containing the given float value, in the current byte order, into this buffer at the current position, and then increments the position by four.
value
- The float value to be writtenBufferOverflowException
- If there are fewer than four bytes
remaining in this bufferReadOnlyBufferException
- If this buffer is read-onlypublic final float getFloat(int index)
Reads four bytes at the given index, composing them into a float value according to the current byte order.
index
- The index from which the bytes will be readIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus threepublic final JCSharedBuffer putFloat(int index, float value)
Writes four bytes containing the given float value, in the current byte order, into this buffer at the given index.
index
- The index at which the bytes will be writtenvalue
- The float value to be writtenIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus threeReadOnlyBufferException
- If this buffer is read-onlypublic final FloatBuffer asFloatBuffer()
The content of the new buffer will start at this buffer's current position. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by four, and its mark will be undefined. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.
public final double getDouble()
Reads the next eight bytes at this buffer's current position, composing them into a double value according to the current byte order, and then increments the position by eight.
BufferUnderflowException
- If there are fewer than eight bytes
remaining in this bufferpublic final JCSharedBuffer putDouble(double value)
Writes eight bytes containing the given double value, in the current byte order, into this buffer at the current position, and then increments the position by eight.
value
- The double value to be writtenBufferOverflowException
- If there are fewer than eight bytes
remaining in this bufferReadOnlyBufferException
- If this buffer is read-onlypublic final double getDouble(int index)
Reads eight bytes at the given index, composing them into a double value according to the current byte order.
index
- The index from which the bytes will be readIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus sevenpublic final JCSharedBuffer putDouble(int index, double value)
Writes eight bytes containing the given double value, in the current byte order, into this buffer at the given index.
index
- The index at which the bytes will be writtenvalue
- The double value to be writtenIndexOutOfBoundsException
- If index
is negative
or not smaller than the buffer's limit,
minus sevenReadOnlyBufferException
- If this buffer is read-onlypublic final DoubleBuffer asDoubleBuffer()
The content of the new buffer will start at this buffer's current position. Changes to this buffer's content will be visible in the new buffer, and vice versa; the two buffers' position, limit, and mark values will be independent.
The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by eight, and its mark will be undefined. The new buffer will be direct if, and only if, this buffer is direct, and it will be read-only if, and only if, this buffer is read-only.