Package org.apache.datasketches.memory
Interface Buffer
-
- All Superinterfaces:
BaseBuffer
,BaseState
- All Known Subinterfaces:
WritableBuffer
public interface Buffer extends BaseBuffer
Defines the read-only API for relative positional access to a resource.- Author:
- Lee Rhodes
-
-
Field Summary
-
Fields inherited from interface org.apache.datasketches.memory.BaseState
defaultMemReqSvr
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Memory
asMemory()
Convert this Buffer to a Memory.Memory
asMemory(ByteOrder byteOrder)
Convert this Buffer to a Memory with the given byte order.int
compareTo(long thisOffsetBytes, long thisLengthBytes, Buffer that, long thatOffsetBytes, long thatLengthBytes)
Compares the bytes of this Buffer to that Buffer.Buffer
duplicate()
Returns a read-only duplicate view of this Buffer with the same but independent values of start, position and end.Buffer
duplicate(ByteOrder byteOrder)
Returns a read-only duplicate view of this Buffer with the same but independent values of start, position and end, but with the specified byteOrder.boolean
getBoolean()
Gets the boolean value at the current position.boolean
getBoolean(long offsetBytes)
Gets the boolean value at the given offset.void
getBooleanArray(boolean[] dstArray, int dstOffsetBooleans, int lengthBooleans)
Gets the boolean array at the current position.byte
getByte()
Gets the byte value at the current position.byte
getByte(long offsetBytes)
Gets the byte value at the given offset.void
getByteArray(byte[] dstArray, int dstOffsetBytes, int lengthBytes)
Gets the byte array at the current position.char
getChar()
Gets the char value at the current position.char
getChar(long offsetBytes)
Gets the char value at the given offset.void
getCharArray(char[] dstArray, int dstOffsetChars, int lengthChars)
Gets the char array at the current position.double
getDouble()
Gets the double value at the current position.double
getDouble(long offsetBytes)
Gets the double value at the given offset.void
getDoubleArray(double[] dstArray, int dstOffsetDoubles, int lengthDoubles)
Gets the double array at the current position.float
getFloat()
Gets the float value at the current position.float
getFloat(long offsetBytes)
Gets the float value at the given offset.void
getFloatArray(float[] dstArray, int dstOffsetFloats, int lengthFloats)
Gets the float array at the current position.int
getInt()
Gets the int value at the current position.int
getInt(long offsetBytes)
Gets the int value at the given offset.void
getIntArray(int[] dstArray, int dstOffsetInts, int lengthInts)
Gets the int array at the current position.long
getLong()
Gets the long value at the current position.long
getLong(long offsetBytes)
Gets the long value at the given offset.void
getLongArray(long[] dstArray, int dstOffsetLongs, int lengthLongs)
Gets the long array at the current position.short
getShort()
Gets the short value at the current position.short
getShort(long offsetBytes)
Gets the short value at the given offset.void
getShortArray(short[] dstArray, int dstOffsetShorts, int lengthShorts)
Gets the short array at the current position.Buffer
region()
A region is a read-only view of this object.Buffer
region(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
A region is a read-only view of this object.static Buffer
wrap(ByteBuffer byteBuffer)
Accesses the given ByteBuffer for read-only operations.static Buffer
wrap(ByteBuffer byteBuffer, ByteOrder byteOrder)
Accesses the given ByteBuffer for read-only operations.-
Methods inherited from interface org.apache.datasketches.memory.BaseBuffer
getEnd, getPosition, getRemaining, getStart, hasRemaining, incrementAndCheckPosition, incrementPosition, resetPosition, setAndCheckPosition, setAndCheckStartPositionEnd, setPosition, setStartPositionEnd
-
Methods inherited from interface org.apache.datasketches.memory.BaseState
checkValidAndBounds, equals, equalTo, getByteBuffer, getCapacity, getCumulativeOffset, getCumulativeOffset, getRegionOffset, getRegionOffset, getTypeByteOrder, hasArray, hasByteBuffer, hashCode, isByteOrderCompatible, isDirect, isReadOnly, isSameResource, isValid, toHexString, xxHash64, xxHash64
-
-
-
-
Method Detail
-
wrap
static Buffer wrap(ByteBuffer byteBuffer)
Accesses the given ByteBuffer for read-only operations. The returned Buffer object has the same byte order, as the given ByteBuffer.- Parameters:
byteBuffer
- the given ByteBuffer, must not be null.- Returns:
- a new Buffer for read-only operations on the given ByteBuffer.
-
wrap
static Buffer wrap(ByteBuffer byteBuffer, ByteOrder byteOrder)
Accesses the given ByteBuffer for read-only operations. The returned Buffer object has the given byte order, ignoring the byte order of the given ByteBuffer.- Parameters:
byteBuffer
- the given ByteBuffer, must not be nullbyteOrder
- the byte order to be used, which may be independent of the byte order state of the given ByteBuffer- Returns:
- a new Buffer for read-only operations on the given ByteBuffer.
-
duplicate
Buffer duplicate()
Returns a read-only duplicate view of this Buffer with the same but independent values of start, position and end.- Returned object's origin = this object's origin
- Returned object's start = this object's start
- Returned object's position = this object's position
- Returned object's end = this object's end
- Returned object's capacity = this object' capacityBytes
- Returned object's start, position and end are mutable and independent of this object's start, position and end
- Returns:
- a read-only duplicate view of this Buffer with the same but independent values of start, position and end.
-
duplicate
Buffer duplicate(ByteOrder byteOrder)
Returns a read-only duplicate view of this Buffer with the same but independent values of start, position and end, but with the specified byteOrder.- Returned object's origin = this object's origin
- Returned object's start = this object's start
- Returned object's position = this object's position
- Returned object's end = this object's end
- Returned object's capacity = this object' capacityBytes
- Returned object's start, position and end are mutable and independent of this object's start, position and end
- Parameters:
byteOrder
- the given ByteOrder.- Returns:
- a read-only duplicate view of this Buffer with the same but independent values of start, position and end.
-
region
Buffer region()
A region is a read-only view of this object.- Returned object's origin = this object's position
- Returned object's start = 0
- Returned object's position = 0
- Returned object's end = this object's (end - position)
- Returned object's capacity = this object's (end - position)
- Returned object's start, position and end are mutable and independent of this object's start, position and end
- Returns:
- a new Buffer representing the defined region based on the current position and end.
-
region
Buffer region(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
A region is a read-only view of this object.- Returned object's origin = this objects' origin + offsetBytes
- Returned object's start = 0
- Returned object's position = 0
- Returned object's end = capacityBytes
- Returned object's capacity = capacityBytes
- Returned object's start, position and end are mutable and independent of this object's start, position and end
- Returned object's byte order = byteOrder
- Parameters:
offsetBytes
- the starting offset with respect to the origin of this WritableBuffercapacityBytes
- the capacity of the returned region in bytesbyteOrder
- the given byte order- Returns:
- a new Buffer representing the defined writable region based on the current position, end and byteOrder.
-
asMemory
default Memory asMemory()
Convert this Buffer to a Memory. The current start, position and end are ignored.- Returns:
- Memory
-
asMemory
Memory asMemory(ByteOrder byteOrder)
Convert this Buffer to a Memory with the given byte order. The current start, position and end are ignored.- Parameters:
byteOrder
- the given byte order.- Returns:
- Memory
-
getBoolean
boolean getBoolean()
Gets the boolean value at the current position. Increments the position by 1.- Returns:
- the boolean at the current position
-
getBoolean
boolean getBoolean(long offsetBytes)
Gets the boolean value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the boolean at the given offset
-
getBooleanArray
void getBooleanArray(boolean[] dstArray, int dstOffsetBooleans, int lengthBooleans)
Gets the boolean array at the current position. Increments the position by lengthBooleans - dstOffsetBooleans.- Parameters:
dstArray
- The preallocated destination array.dstOffsetBooleans
- offset in array unitslengthBooleans
- number of array units to transfer
-
getByte
byte getByte()
Gets the byte value at the current position. Increments the position by Byte.BYTES.- Returns:
- the byte at the current position
-
getByte
byte getByte(long offsetBytes)
Gets the byte value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the byte at the given offset
-
getByteArray
void getByteArray(byte[] dstArray, int dstOffsetBytes, int lengthBytes)
Gets the byte array at the current position. Increments the position by Byte.BYTES * (lengthBytes - dstOffsetBytes).- Parameters:
dstArray
- The preallocated destination array.dstOffsetBytes
- offset in array unitslengthBytes
- number of array units to transfer
-
getChar
char getChar()
Gets the char value at the current position. Increments the position by Character.BYTES.- Returns:
- the char at the current position
-
getChar
char getChar(long offsetBytes)
Gets the char value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the char at the given offset
-
getCharArray
void getCharArray(char[] dstArray, int dstOffsetChars, int lengthChars)
Gets the char array at the current position. Increments the position by Character.BYTES * (lengthChars - dstOffsetChars).- Parameters:
dstArray
- The preallocated destination array.dstOffsetChars
- offset in array unitslengthChars
- number of array units to transfer
-
getDouble
double getDouble()
Gets the double value at the current position. Increments the position by Double.BYTES.- Returns:
- the double at the current position
-
getDouble
double getDouble(long offsetBytes)
Gets the double value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the double at the given offset
-
getDoubleArray
void getDoubleArray(double[] dstArray, int dstOffsetDoubles, int lengthDoubles)
Gets the double array at the current position. Increments the position by Double.BYTES * (lengthDoubles - dstOffsetDoubles).- Parameters:
dstArray
- The preallocated destination array.dstOffsetDoubles
- offset in array unitslengthDoubles
- number of array units to transfer
-
getFloat
float getFloat()
Gets the float value at the current position. Increments the position by Float.BYTES.- Returns:
- the float at the current position
-
getFloat
float getFloat(long offsetBytes)
Gets the float value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the float at the given offset
-
getFloatArray
void getFloatArray(float[] dstArray, int dstOffsetFloats, int lengthFloats)
Gets the float array at the current position. Increments the position by Float.BYTES * (lengthFloats - dstOffsetFloats).- Parameters:
dstArray
- The preallocated destination array.dstOffsetFloats
- offset in array unitslengthFloats
- number of array units to transfer
-
getInt
int getInt()
Gets the int value at the current position. Increments the position by Integer.BYTES.- Returns:
- the int at the current position
-
getInt
int getInt(long offsetBytes)
Gets the int value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the int at the given offset
-
getIntArray
void getIntArray(int[] dstArray, int dstOffsetInts, int lengthInts)
Gets the int array at the current position. Increments the position by Integer.BYTES * (lengthInts - dstOffsetInts).- Parameters:
dstArray
- The preallocated destination array.dstOffsetInts
- offset in array unitslengthInts
- number of array units to transfer
-
getLong
long getLong()
Gets the long value at the current position. Increments the position by Long.BYTES.- Returns:
- the long at the current position
-
getLong
long getLong(long offsetBytes)
Gets the long value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the long at the given offset
-
getLongArray
void getLongArray(long[] dstArray, int dstOffsetLongs, int lengthLongs)
Gets the long array at the current position. Increments the position by Long.BYTES * (lengthLongs - dstOffsetLongs).- Parameters:
dstArray
- The preallocated destination array.dstOffsetLongs
- offset in array unitslengthLongs
- number of array units to transfer
-
getShort
short getShort()
Gets the short value at the current position. Increments the position by Short.BYTES.- Returns:
- the short at the current position
-
getShort
short getShort(long offsetBytes)
Gets the short value at the given offset. This does not change the position.- Parameters:
offsetBytes
- offset bytes relative to this Memory start- Returns:
- the short at the given offset
-
getShortArray
void getShortArray(short[] dstArray, int dstOffsetShorts, int lengthShorts)
Gets the short array at the current position. Increments the position by Short.BYTES * (lengthShorts - dstOffsetShorts).- Parameters:
dstArray
- The preallocated destination array.dstOffsetShorts
- offset in array unitslengthShorts
- number of array units to transfer
-
compareTo
int compareTo(long thisOffsetBytes, long thisLengthBytes, Buffer that, long thatOffsetBytes, long thatLengthBytes)
Compares the bytes of this Buffer to that Buffer. This uses absolute offsets not the start, position and end. Returns (this < that) ? (some negative value) : (this > that) ? (some positive value) : 0;. If all bytes are equal up to the shorter of the two lengths, the shorter length is considered to be less than the other.- Parameters:
thisOffsetBytes
- the starting offset for this BufferthisLengthBytes
- the length of the region to compare from this Bufferthat
- the other Buffer to compare withthatOffsetBytes
- the starting offset for that BufferthatLengthBytes
- the length of the region to compare from that Buffer- Returns:
- (this < that) ? (some negative value) : (this > that) ? (some positive value) : 0;
-
-