A DataBuffer
of bytes.
Public Methods
abstract BooleanDataBuffer |
asBooleans()
Return this byte buffer as a buffer of booleans.
|
abstract DoubleDataBuffer |
asDoubles()
Return this byte buffer as a buffer of doubles.
|
abstract FloatDataBuffer |
asFloats()
Return this byte buffer as a buffer of floats.
|
abstract IntDataBuffer |
asInts()
Return this byte buffer as a buffer of ints.
|
abstract LongDataBuffer |
asLongs()
Return this byte buffer as a buffer of longs.
|
abstract ShortDataBuffer |
asShorts()
Return this byte buffer as a buffer of shorts.
|
abstract ByteDataBuffer |
copyTo(DataBuffer<Byte> dst, long size)
|
abstract byte |
getByte(long index)
Reads the byte at the given index.
|
abstract Byte |
getObject(long index)
Reads the value at the given index.
|
abstract ByteDataBuffer |
narrow(long size)
Creates a new buffer whose content is a shared subsequence of this buffer's content, whose
size is set to the given value.
|
abstract ByteDataBuffer |
offset(long index)
Creates a new buffer whose content is a shared subsequence of this buffer's content, starting
at the given index.
|
abstract ByteDataBuffer |
read(byte[] dst)
Bulk get method, using byte arrays.
|
abstract ByteDataBuffer |
read(byte[] dst, int offset, int length)
Bulk get method, using byte arrays.
|
abstract ByteDataBuffer |
setByte(byte value, long index)
Writes the given byte into this buffer at the given index.
|
abstract ByteDataBuffer |
setObject(Byte value, long index)
|
abstract ByteDataBuffer |
slice(long index, long size)
Creates a new buffer whose content is a shared subsequence of this buffer's content, starting
at the given index and of the given size.
|
abstract DataBufferWindow<ByteDataBuffer> |
window(long size)
Creates a
DataBufferWindow that provides a partial view of this buffer. |
abstract ByteDataBuffer |
write(byte[] src)
Bulk put method, using byte arrays.
|
abstract ByteDataBuffer |
write(byte[] src, int offset, int length)
Bulk put method, using byte arrays.
|
Inherited Methods
Public Methods
public abstract BooleanDataBuffer asBooleans ()
Return this byte buffer as a buffer of booleans.
The returned buffer provides a different view on the same memory as the original byte buffer, meaning that changing a value in one will affect the other.
Returns
- this buffer as a
BooleanDataBuffer
Throws
IllegalStateException | if this buffer cannot be converted |
---|
public abstract DoubleDataBuffer asDoubles ()
Return this byte buffer as a buffer of doubles.
The returned buffer provides a different view on the same memory as the original byte buffer, meaning that changing a value in one will affect the other.
Returns
- this buffer as a
DoubleDataBuffer
Throws
IllegalStateException | if this buffer cannot be converted |
---|
public abstract FloatDataBuffer asFloats ()
Return this byte buffer as a buffer of floats.
The returned buffer provides a different view on the same memory as the original byte buffer, meaning that changing a value in one will affect the other.
Returns
- this buffer as a
FloatDataBuffer
Throws
IllegalStateException | if this buffer cannot be converted |
---|
public abstract IntDataBuffer asInts ()
Return this byte buffer as a buffer of ints.
The returned buffer provides a different view on the same memory as the original byte buffer, meaning that changing a value in one will affect the other.
Returns
- this buffer as a
IntDataBuffer
Throws
IllegalStateException | if this buffer cannot be converted |
---|
public abstract LongDataBuffer asLongs ()
Return this byte buffer as a buffer of longs.
The returned buffer provides a different view on the same memory as the original byte buffer, meaning that changing a value in one will affect the other.
Returns
- this buffer as a
LongDataBuffer
Throws
IllegalStateException | if this buffer cannot be converted |
---|
public abstract ShortDataBuffer asShorts ()
Return this byte buffer as a buffer of shorts.
The returned buffer provides a different view on the same memory as the original byte buffer, meaning that changing a value in one will affect the other.
Returns
- this buffer as a
ShortDataBuffer
Throws
IllegalStateException | if this buffer cannot be converted |
---|
public abstract byte getByte (long index)
Reads the byte at the given index.
Parameters
index | the index from which the float will be read |
---|
Returns
- the byte at the given index
Throws
IndexOutOfBoundsException | if index is negative or not smaller than the buffer size |
---|
public abstract Byte getObject (long index)
Reads the value at the given index.
Important: Usage of this method should be limited to buffers of non-primitive types or
when the data type is not deterministically known by the caller. In any other case, prefer
the usage of its primitive variant which will significantly improve performances
(e.g. IntDataBuffer.getInt(idx)
Parameters
index | the index from which the float will be read |
---|
Returns
- the value at the given index
public abstract ByteDataBuffer narrow (long size)
Creates a new buffer whose content is a shared subsequence of this buffer's content, whose size is set to the given value.
The new size must not be greater than this buffer size. Changes to this buffer's content will be visible in the new buffer and vice versa. The new buffer will be read-only if, and only if, this buffer is read-only.
This call is equivalent to slice(0, size)
Parameters
size | size of this new buffer |
---|
Returns
- the new buffer
public abstract ByteDataBuffer offset (long index)
Creates a new buffer whose content is a shared subsequence of this buffer's content, starting at the given index.
The index must not be greater than this buffer size. Changes to this buffer's content will be visible in the new buffer and vice versa. The new buffer will be read-only if, and only if, this buffer is read-only.
This call is equivalent to slice(index, size() - index)
Parameters
index | index of the first value of the new buffer created, must not be greater than
size() |
---|
Returns
- the new buffer
public abstract ByteDataBuffer read (byte[] dst)
Bulk get method, using byte arrays.
This method transfers values from this buffer into the given destination array. If there are
fewer values in the buffer than are required to satisfy the request, that is, if
dst.length > size()
, then no values are transferred and a
BufferUnderflowException is thrown.
Otherwise, this method copies n = dst.length
values from this buffer into the given
array.
Parameters
dst | the array into which values are to be written |
---|
Returns
- this buffer
Throws
BufferUnderflowException | if there are not enough values to copy from this buffer |
---|
public abstract ByteDataBuffer read (byte[] dst, int offset, int length)
Bulk get method, using byte arrays.
This method transfers values from this buffer into the given destination array. If there are
fewer values in the buffer than are required to satisfy the request, that is, if
length > size()
, then no values are transferred and a
BufferUnderflowException is thrown.
Otherwise, this method copies n = length
values from this buffer into the given array
starting at the given offset.
Parameters
dst | the array into which values are to be written |
---|---|
offset | the offset within the array of the first value to be written; must be
non-negative and no larger than dst.length |
length | the maximum number of values to be written to the given array; must be
non-negative and no larger than dst.length - offset |
Returns
- this buffer
Throws
BufferUnderflowException | if there are fewer than length values remaining in this buffer |
---|---|
IndexOutOfBoundsException | if the preconditions on the offset and length parameters do not hold |
public abstract ByteDataBuffer setByte (byte value, long index)
Writes the given byte into this buffer at the given index.
Parameters
value | the byte to be written |
---|---|
index | the index at which the value will be written |
Returns
- this buffer
Throws
IndexOutOfBoundsException | if index is negative or not smaller than the buffer size |
---|---|
ReadOnlyBufferException | if this buffer is read-only |
public abstract ByteDataBuffer slice (long index, long size)
Creates a new buffer whose content is a shared subsequence of this buffer's content, starting at the given index and of the given size.
The index plus the new size must not be greater than this buffer size. Changes to this buffer's content will be visible in the new buffer and vice versa. The new buffer will be read-only if, and only if, this buffer is read-only.
Parameters
index | index of the first value of the new buffer created |
---|---|
size | size of this new buffer, must not be greater than size() |
Returns
- the new buffer
public abstract DataBufferWindow<ByteDataBuffer> window (long size)
Creates a DataBufferWindow
that provides a partial view of this buffer.
The created window has a fixed size and can "slide"
along this buffer to provide different views of the data without allocating a new buffer
instance, like offset(long)
does. This improves overall performance when this
operation is repeated frequently. For example:
IntDataBuffer bufferA = DataBuffers.ofInts(1024);
// ... init buffer data
IntDataBuffer bufferB = DataBuffers.ofInts(1, 2, 3, 4);
// Return the index of the first occurrence of bufferB in bufferA using a sliding window
DataBufferWindow<IntDataBuffer> windowA = bufferA.window(4);
for (int i = 0; i < bufferA.size() - bufferB.size(); ++i) {
if (windowA.slideTo(i).buffer().equals(bufferB)) {
return i;
}
}
The returned object is stateful and is not thread-safe.
Parameters
size | size of the window |
---|
Returns
- a new window that starts at the index 0 of this buffer
public abstract ByteDataBuffer write (byte[] src)
Bulk put method, using byte arrays.
This method transfers the values in the given source array into this buffer. If there are
more values in the source array than in this buffer, that is, if
src.length > size()
, then no values are transferred and a
BufferOverflowException is thrown.
Otherwise, this method copies n = src.length
values from the given array.
Parameters
src | the source array from which values are to be read |
---|
Returns
- this buffer
Throws
BufferOverflowException | if there is insufficient space in this buffer for the values in the source array |
---|---|
ReadOnlyBufferException | if this buffer is read-only |
public abstract ByteDataBuffer write (byte[] src, int offset, int length)
Bulk put method, using byte arrays.
This method transfers the values in the given source array into this buffer. If there are
more values in the source array than in this buffer, that is, if
length > size()
, then no values are transferred and a
BufferOverflowException is thrown.
Otherwise, this method copies n = length
values from the given array into this buffer,
starting at the given offset.
Parameters
src | the source array from which values are to be read |
---|---|
offset | the offset within the array of the first value to be read; must be non-negative
and no larger than src.length |
length | the number of values to be read from the given array; must be non-negative and no
larger than src.length - offset |
Returns
- this buffer
Throws
BufferOverflowException | if there is insufficient space in this buffer for the values in the source array |
---|---|
IndexOutOfBoundsException | if the preconditions on the offset and length parameters do not hold |
ReadOnlyBufferException | if this buffer is read-only |