Package org.apache.druid.segment.data
Class SafeWritableBuffer
- java.lang.Object
-
- org.apache.druid.segment.data.SafeWritableBase
-
- org.apache.druid.segment.data.SafeWritableBuffer
-
- All Implemented Interfaces:
org.apache.datasketches.memory.BaseBuffer
,org.apache.datasketches.memory.BaseState
,org.apache.datasketches.memory.Buffer
,org.apache.datasketches.memory.WritableBuffer
public class SafeWritableBuffer extends SafeWritableBase implements org.apache.datasketches.memory.WritableBuffer
Safety first! Don't trust something whose contents you locations to read and write stuff to, but need aBuffer
orWritableBuffer
? use this!Delegates everything to an underlying
ByteBuffer
so all read and write operations will have bounds checks built in rather than using 'unsafe'.
-
-
Constructor Summary
Constructors Constructor Description SafeWritableBuffer(ByteBuffer buffer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.datasketches.memory.Memory
asMemory(ByteOrder byteOrder)
org.apache.datasketches.memory.WritableMemory
asWritableMemory(ByteOrder byteOrder)
void
clear()
int
compareTo(long thisOffsetBytes, long thisLengthBytes, org.apache.datasketches.memory.Buffer that, long thatOffsetBytes, long thatLengthBytes)
org.apache.datasketches.memory.Buffer
duplicate()
org.apache.datasketches.memory.Buffer
duplicate(ByteOrder byteOrder)
boolean
equalTo(long thisOffsetBytes, Object that, long thatOffsetBytes, long lengthBytes)
void
fill(byte value)
Object
getArray()
boolean
getBoolean()
void
getBooleanArray(boolean[] dstArray, int dstOffsetBooleans, int lengthBooleans)
byte
getByte()
void
getByteArray(byte[] dstArray, int dstOffsetBytes, int lengthBytes)
char
getChar()
void
getCharArray(char[] dstArray, int dstOffsetChars, int lengthChars)
double
getDouble()
void
getDoubleArray(double[] dstArray, int dstOffsetDoubles, int lengthDoubles)
long
getEnd()
float
getFloat()
void
getFloatArray(float[] dstArray, int dstOffsetFloats, int lengthFloats)
int
getInt()
void
getIntArray(int[] dstArray, int dstOffsetInts, int lengthInts)
long
getLong()
void
getLongArray(long[] dstArray, int dstOffsetLongs, int lengthLongs)
long
getPosition()
long
getRemaining()
short
getShort()
void
getShortArray(short[] dstArray, int dstOffsetShorts, int lengthShorts)
long
getStart()
boolean
hasRemaining()
org.apache.datasketches.memory.BaseBuffer
incrementAndCheckPosition(long increment)
org.apache.datasketches.memory.BaseBuffer
incrementPosition(long increment)
void
putBoolean(boolean value)
void
putBooleanArray(boolean[] srcArray, int srcOffsetBooleans, int lengthBooleans)
void
putByte(byte value)
void
putByteArray(byte[] srcArray, int srcOffsetBytes, int lengthBytes)
void
putChar(char value)
void
putCharArray(char[] srcArray, int srcOffsetChars, int lengthChars)
void
putDouble(double value)
void
putDoubleArray(double[] srcArray, int srcOffsetDoubles, int lengthDoubles)
void
putFloat(float value)
void
putFloatArray(float[] srcArray, int srcOffsetFloats, int lengthFloats)
void
putInt(int value)
void
putIntArray(int[] srcArray, int srcOffsetInts, int lengthInts)
void
putLong(long value)
void
putLongArray(long[] srcArray, int srcOffsetLongs, int lengthLongs)
void
putShort(short value)
void
putShortArray(short[] srcArray, int srcOffsetShorts, int lengthShorts)
org.apache.datasketches.memory.Buffer
region()
org.apache.datasketches.memory.Buffer
region(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
org.apache.datasketches.memory.BaseBuffer
resetPosition()
org.apache.datasketches.memory.BaseBuffer
setAndCheckPosition(long position)
org.apache.datasketches.memory.BaseBuffer
setAndCheckStartPositionEnd(long start, long position, long end)
org.apache.datasketches.memory.BaseBuffer
setPosition(long position)
org.apache.datasketches.memory.BaseBuffer
setStartPositionEnd(long start, long position, long end)
org.apache.datasketches.memory.WritableBuffer
writableDuplicate()
org.apache.datasketches.memory.WritableBuffer
writableDuplicate(ByteOrder byteOrder)
org.apache.datasketches.memory.WritableBuffer
writableRegion()
org.apache.datasketches.memory.WritableBuffer
writableRegion(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
-
Methods inherited from class org.apache.druid.segment.data.SafeWritableBase
checkValidAndBounds, getBoolean, getByte, getByteBuffer, getCapacity, getChar, getCumulativeOffset, getCumulativeOffset, getDouble, getFloat, getInt, getLong, getMemoryRequestServer, getRegionOffset, getRegionOffset, getShort, getTypeByteOrder, hasArray, hasByteBuffer, isByteOrderCompatible, isDirect, isReadOnly, isSameResource, isValid, putBoolean, putByte, putChar, putDouble, putFloat, putInt, putLong, putShort, toHexString, xxHash64, xxHash64
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.datasketches.memory.BaseState
checkValidAndBounds, equals, getByteBuffer, getCapacity, getCumulativeOffset, getCumulativeOffset, getRegionOffset, getRegionOffset, getTypeByteOrder, hasArray, hasByteBuffer, hashCode, isByteOrderCompatible, isDirect, isReadOnly, isSameResource, isValid, toHexString, xxHash64, xxHash64
-
-
-
-
Constructor Detail
-
SafeWritableBuffer
public SafeWritableBuffer(ByteBuffer buffer)
-
-
Method Detail
-
writableDuplicate
public org.apache.datasketches.memory.WritableBuffer writableDuplicate()
- Specified by:
writableDuplicate
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
writableDuplicate
public org.apache.datasketches.memory.WritableBuffer writableDuplicate(ByteOrder byteOrder)
- Specified by:
writableDuplicate
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
writableRegion
public org.apache.datasketches.memory.WritableBuffer writableRegion()
- Specified by:
writableRegion
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
writableRegion
public org.apache.datasketches.memory.WritableBuffer writableRegion(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
- Specified by:
writableRegion
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
asWritableMemory
public org.apache.datasketches.memory.WritableMemory asWritableMemory(ByteOrder byteOrder)
- Specified by:
asWritableMemory
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putBoolean
public void putBoolean(boolean value)
- Specified by:
putBoolean
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putBooleanArray
public void putBooleanArray(boolean[] srcArray, int srcOffsetBooleans, int lengthBooleans)
- Specified by:
putBooleanArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putByte
public void putByte(byte value)
- Specified by:
putByte
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putByteArray
public void putByteArray(byte[] srcArray, int srcOffsetBytes, int lengthBytes)
- Specified by:
putByteArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putChar
public void putChar(char value)
- Specified by:
putChar
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putCharArray
public void putCharArray(char[] srcArray, int srcOffsetChars, int lengthChars)
- Specified by:
putCharArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putDouble
public void putDouble(double value)
- Specified by:
putDouble
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putDoubleArray
public void putDoubleArray(double[] srcArray, int srcOffsetDoubles, int lengthDoubles)
- Specified by:
putDoubleArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putFloat
public void putFloat(float value)
- Specified by:
putFloat
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putFloatArray
public void putFloatArray(float[] srcArray, int srcOffsetFloats, int lengthFloats)
- Specified by:
putFloatArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putInt
public void putInt(int value)
- Specified by:
putInt
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putIntArray
public void putIntArray(int[] srcArray, int srcOffsetInts, int lengthInts)
- Specified by:
putIntArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putLong
public void putLong(long value)
- Specified by:
putLong
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putLongArray
public void putLongArray(long[] srcArray, int srcOffsetLongs, int lengthLongs)
- Specified by:
putLongArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putShort
public void putShort(short value)
- Specified by:
putShort
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
putShortArray
public void putShortArray(short[] srcArray, int srcOffsetShorts, int lengthShorts)
- Specified by:
putShortArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
getArray
public Object getArray()
- Specified by:
getArray
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
clear
public void clear()
- Specified by:
clear
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
fill
public void fill(byte value)
- Specified by:
fill
in interfaceorg.apache.datasketches.memory.WritableBuffer
-
duplicate
public org.apache.datasketches.memory.Buffer duplicate()
- Specified by:
duplicate
in interfaceorg.apache.datasketches.memory.Buffer
-
duplicate
public org.apache.datasketches.memory.Buffer duplicate(ByteOrder byteOrder)
- Specified by:
duplicate
in interfaceorg.apache.datasketches.memory.Buffer
-
region
public org.apache.datasketches.memory.Buffer region()
- Specified by:
region
in interfaceorg.apache.datasketches.memory.Buffer
-
region
public org.apache.datasketches.memory.Buffer region(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
- Specified by:
region
in interfaceorg.apache.datasketches.memory.Buffer
-
asMemory
public org.apache.datasketches.memory.Memory asMemory(ByteOrder byteOrder)
- Specified by:
asMemory
in interfaceorg.apache.datasketches.memory.Buffer
-
getBoolean
public boolean getBoolean()
- Specified by:
getBoolean
in interfaceorg.apache.datasketches.memory.Buffer
-
getBooleanArray
public void getBooleanArray(boolean[] dstArray, int dstOffsetBooleans, int lengthBooleans)
- Specified by:
getBooleanArray
in interfaceorg.apache.datasketches.memory.Buffer
-
getByte
public byte getByte()
- Specified by:
getByte
in interfaceorg.apache.datasketches.memory.Buffer
-
getByteArray
public void getByteArray(byte[] dstArray, int dstOffsetBytes, int lengthBytes)
- Specified by:
getByteArray
in interfaceorg.apache.datasketches.memory.Buffer
-
getChar
public char getChar()
- Specified by:
getChar
in interfaceorg.apache.datasketches.memory.Buffer
-
getCharArray
public void getCharArray(char[] dstArray, int dstOffsetChars, int lengthChars)
- Specified by:
getCharArray
in interfaceorg.apache.datasketches.memory.Buffer
-
getDouble
public double getDouble()
- Specified by:
getDouble
in interfaceorg.apache.datasketches.memory.Buffer
-
getDoubleArray
public void getDoubleArray(double[] dstArray, int dstOffsetDoubles, int lengthDoubles)
- Specified by:
getDoubleArray
in interfaceorg.apache.datasketches.memory.Buffer
-
getFloat
public float getFloat()
- Specified by:
getFloat
in interfaceorg.apache.datasketches.memory.Buffer
-
getFloatArray
public void getFloatArray(float[] dstArray, int dstOffsetFloats, int lengthFloats)
- Specified by:
getFloatArray
in interfaceorg.apache.datasketches.memory.Buffer
-
getInt
public int getInt()
- Specified by:
getInt
in interfaceorg.apache.datasketches.memory.Buffer
-
getIntArray
public void getIntArray(int[] dstArray, int dstOffsetInts, int lengthInts)
- Specified by:
getIntArray
in interfaceorg.apache.datasketches.memory.Buffer
-
getLong
public long getLong()
- Specified by:
getLong
in interfaceorg.apache.datasketches.memory.Buffer
-
getLongArray
public void getLongArray(long[] dstArray, int dstOffsetLongs, int lengthLongs)
- Specified by:
getLongArray
in interfaceorg.apache.datasketches.memory.Buffer
-
getShort
public short getShort()
- Specified by:
getShort
in interfaceorg.apache.datasketches.memory.Buffer
-
getShortArray
public void getShortArray(short[] dstArray, int dstOffsetShorts, int lengthShorts)
- Specified by:
getShortArray
in interfaceorg.apache.datasketches.memory.Buffer
-
compareTo
public int compareTo(long thisOffsetBytes, long thisLengthBytes, org.apache.datasketches.memory.Buffer that, long thatOffsetBytes, long thatLengthBytes)
- Specified by:
compareTo
in interfaceorg.apache.datasketches.memory.Buffer
-
incrementPosition
public org.apache.datasketches.memory.BaseBuffer incrementPosition(long increment)
- Specified by:
incrementPosition
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
incrementAndCheckPosition
public org.apache.datasketches.memory.BaseBuffer incrementAndCheckPosition(long increment)
- Specified by:
incrementAndCheckPosition
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
getEnd
public long getEnd()
- Specified by:
getEnd
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
getPosition
public long getPosition()
- Specified by:
getPosition
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
getStart
public long getStart()
- Specified by:
getStart
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
getRemaining
public long getRemaining()
- Specified by:
getRemaining
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
hasRemaining
public boolean hasRemaining()
- Specified by:
hasRemaining
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
resetPosition
public org.apache.datasketches.memory.BaseBuffer resetPosition()
- Specified by:
resetPosition
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
setPosition
public org.apache.datasketches.memory.BaseBuffer setPosition(long position)
- Specified by:
setPosition
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
setAndCheckPosition
public org.apache.datasketches.memory.BaseBuffer setAndCheckPosition(long position)
- Specified by:
setAndCheckPosition
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
setStartPositionEnd
public org.apache.datasketches.memory.BaseBuffer setStartPositionEnd(long start, long position, long end)
- Specified by:
setStartPositionEnd
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
setAndCheckStartPositionEnd
public org.apache.datasketches.memory.BaseBuffer setAndCheckStartPositionEnd(long start, long position, long end)
- Specified by:
setAndCheckStartPositionEnd
in interfaceorg.apache.datasketches.memory.BaseBuffer
-
equalTo
public boolean equalTo(long thisOffsetBytes, Object that, long thatOffsetBytes, long lengthBytes)
- Specified by:
equalTo
in interfaceorg.apache.datasketches.memory.BaseState
-
-