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 a Buffer or WritableBuffer? 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 Details

    • SafeWritableBuffer

      public SafeWritableBuffer(ByteBuffer buffer)
  • Method Details

    • writableDuplicate

      public org.apache.datasketches.memory.WritableBuffer writableDuplicate()
      Specified by:
      writableDuplicate in interface org.apache.datasketches.memory.WritableBuffer
    • writableDuplicate

      public org.apache.datasketches.memory.WritableBuffer writableDuplicate(ByteOrder byteOrder)
      Specified by:
      writableDuplicate in interface org.apache.datasketches.memory.WritableBuffer
    • writableRegion

      public org.apache.datasketches.memory.WritableBuffer writableRegion()
      Specified by:
      writableRegion in interface org.apache.datasketches.memory.WritableBuffer
    • writableRegion

      public org.apache.datasketches.memory.WritableBuffer writableRegion(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
      Specified by:
      writableRegion in interface org.apache.datasketches.memory.WritableBuffer
    • asWritableMemory

      public org.apache.datasketches.memory.WritableMemory asWritableMemory(ByteOrder byteOrder)
      Specified by:
      asWritableMemory in interface org.apache.datasketches.memory.WritableBuffer
    • putBoolean

      public void putBoolean(boolean value)
      Specified by:
      putBoolean in interface org.apache.datasketches.memory.WritableBuffer
    • putBooleanArray

      public void putBooleanArray(boolean[] srcArray, int srcOffsetBooleans, int lengthBooleans)
      Specified by:
      putBooleanArray in interface org.apache.datasketches.memory.WritableBuffer
    • putByte

      public void putByte(byte value)
      Specified by:
      putByte in interface org.apache.datasketches.memory.WritableBuffer
    • putByteArray

      public void putByteArray(byte[] srcArray, int srcOffsetBytes, int lengthBytes)
      Specified by:
      putByteArray in interface org.apache.datasketches.memory.WritableBuffer
    • putChar

      public void putChar(char value)
      Specified by:
      putChar in interface org.apache.datasketches.memory.WritableBuffer
    • putCharArray

      public void putCharArray(char[] srcArray, int srcOffsetChars, int lengthChars)
      Specified by:
      putCharArray in interface org.apache.datasketches.memory.WritableBuffer
    • putDouble

      public void putDouble(double value)
      Specified by:
      putDouble in interface org.apache.datasketches.memory.WritableBuffer
    • putDoubleArray

      public void putDoubleArray(double[] srcArray, int srcOffsetDoubles, int lengthDoubles)
      Specified by:
      putDoubleArray in interface org.apache.datasketches.memory.WritableBuffer
    • putFloat

      public void putFloat(float value)
      Specified by:
      putFloat in interface org.apache.datasketches.memory.WritableBuffer
    • putFloatArray

      public void putFloatArray(float[] srcArray, int srcOffsetFloats, int lengthFloats)
      Specified by:
      putFloatArray in interface org.apache.datasketches.memory.WritableBuffer
    • putInt

      public void putInt(int value)
      Specified by:
      putInt in interface org.apache.datasketches.memory.WritableBuffer
    • putIntArray

      public void putIntArray(int[] srcArray, int srcOffsetInts, int lengthInts)
      Specified by:
      putIntArray in interface org.apache.datasketches.memory.WritableBuffer
    • putLong

      public void putLong(long value)
      Specified by:
      putLong in interface org.apache.datasketches.memory.WritableBuffer
    • putLongArray

      public void putLongArray(long[] srcArray, int srcOffsetLongs, int lengthLongs)
      Specified by:
      putLongArray in interface org.apache.datasketches.memory.WritableBuffer
    • putShort

      public void putShort(short value)
      Specified by:
      putShort in interface org.apache.datasketches.memory.WritableBuffer
    • putShortArray

      public void putShortArray(short[] srcArray, int srcOffsetShorts, int lengthShorts)
      Specified by:
      putShortArray in interface org.apache.datasketches.memory.WritableBuffer
    • getArray

      public Object getArray()
      Specified by:
      getArray in interface org.apache.datasketches.memory.WritableBuffer
    • clear

      public void clear()
      Specified by:
      clear in interface org.apache.datasketches.memory.WritableBuffer
    • fill

      public void fill(byte value)
      Specified by:
      fill in interface org.apache.datasketches.memory.WritableBuffer
    • duplicate

      public org.apache.datasketches.memory.Buffer duplicate()
      Specified by:
      duplicate in interface org.apache.datasketches.memory.Buffer
    • duplicate

      public org.apache.datasketches.memory.Buffer duplicate(ByteOrder byteOrder)
      Specified by:
      duplicate in interface org.apache.datasketches.memory.Buffer
    • region

      public org.apache.datasketches.memory.Buffer region()
      Specified by:
      region in interface org.apache.datasketches.memory.Buffer
    • region

      public org.apache.datasketches.memory.Buffer region(long offsetBytes, long capacityBytes, ByteOrder byteOrder)
      Specified by:
      region in interface org.apache.datasketches.memory.Buffer
    • asMemory

      public org.apache.datasketches.memory.Memory asMemory(ByteOrder byteOrder)
      Specified by:
      asMemory in interface org.apache.datasketches.memory.Buffer
    • getBoolean

      public boolean getBoolean()
      Specified by:
      getBoolean in interface org.apache.datasketches.memory.Buffer
    • getBooleanArray

      public void getBooleanArray(boolean[] dstArray, int dstOffsetBooleans, int lengthBooleans)
      Specified by:
      getBooleanArray in interface org.apache.datasketches.memory.Buffer
    • getByte

      public byte getByte()
      Specified by:
      getByte in interface org.apache.datasketches.memory.Buffer
    • getByteArray

      public void getByteArray(byte[] dstArray, int dstOffsetBytes, int lengthBytes)
      Specified by:
      getByteArray in interface org.apache.datasketches.memory.Buffer
    • getChar

      public char getChar()
      Specified by:
      getChar in interface org.apache.datasketches.memory.Buffer
    • getCharArray

      public void getCharArray(char[] dstArray, int dstOffsetChars, int lengthChars)
      Specified by:
      getCharArray in interface org.apache.datasketches.memory.Buffer
    • getDouble

      public double getDouble()
      Specified by:
      getDouble in interface org.apache.datasketches.memory.Buffer
    • getDoubleArray

      public void getDoubleArray(double[] dstArray, int dstOffsetDoubles, int lengthDoubles)
      Specified by:
      getDoubleArray in interface org.apache.datasketches.memory.Buffer
    • getFloat

      public float getFloat()
      Specified by:
      getFloat in interface org.apache.datasketches.memory.Buffer
    • getFloatArray

      public void getFloatArray(float[] dstArray, int dstOffsetFloats, int lengthFloats)
      Specified by:
      getFloatArray in interface org.apache.datasketches.memory.Buffer
    • getInt

      public int getInt()
      Specified by:
      getInt in interface org.apache.datasketches.memory.Buffer
    • getIntArray

      public void getIntArray(int[] dstArray, int dstOffsetInts, int lengthInts)
      Specified by:
      getIntArray in interface org.apache.datasketches.memory.Buffer
    • getLong

      public long getLong()
      Specified by:
      getLong in interface org.apache.datasketches.memory.Buffer
    • getLongArray

      public void getLongArray(long[] dstArray, int dstOffsetLongs, int lengthLongs)
      Specified by:
      getLongArray in interface org.apache.datasketches.memory.Buffer
    • getShort

      public short getShort()
      Specified by:
      getShort in interface org.apache.datasketches.memory.Buffer
    • getShortArray

      public void getShortArray(short[] dstArray, int dstOffsetShorts, int lengthShorts)
      Specified by:
      getShortArray in interface org.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 interface org.apache.datasketches.memory.Buffer
    • incrementPosition

      public org.apache.datasketches.memory.BaseBuffer incrementPosition(long increment)
      Specified by:
      incrementPosition in interface org.apache.datasketches.memory.BaseBuffer
    • incrementAndCheckPosition

      public org.apache.datasketches.memory.BaseBuffer incrementAndCheckPosition(long increment)
      Specified by:
      incrementAndCheckPosition in interface org.apache.datasketches.memory.BaseBuffer
    • getEnd

      public long getEnd()
      Specified by:
      getEnd in interface org.apache.datasketches.memory.BaseBuffer
    • getPosition

      public long getPosition()
      Specified by:
      getPosition in interface org.apache.datasketches.memory.BaseBuffer
    • getStart

      public long getStart()
      Specified by:
      getStart in interface org.apache.datasketches.memory.BaseBuffer
    • getRemaining

      public long getRemaining()
      Specified by:
      getRemaining in interface org.apache.datasketches.memory.BaseBuffer
    • hasRemaining

      public boolean hasRemaining()
      Specified by:
      hasRemaining in interface org.apache.datasketches.memory.BaseBuffer
    • resetPosition

      public org.apache.datasketches.memory.BaseBuffer resetPosition()
      Specified by:
      resetPosition in interface org.apache.datasketches.memory.BaseBuffer
    • setPosition

      public org.apache.datasketches.memory.BaseBuffer setPosition(long position)
      Specified by:
      setPosition in interface org.apache.datasketches.memory.BaseBuffer
    • setAndCheckPosition

      public org.apache.datasketches.memory.BaseBuffer setAndCheckPosition(long position)
      Specified by:
      setAndCheckPosition in interface org.apache.datasketches.memory.BaseBuffer
    • setStartPositionEnd

      public org.apache.datasketches.memory.BaseBuffer setStartPositionEnd(long start, long position, long end)
      Specified by:
      setStartPositionEnd in interface org.apache.datasketches.memory.BaseBuffer
    • setAndCheckStartPositionEnd

      public org.apache.datasketches.memory.BaseBuffer setAndCheckStartPositionEnd(long start, long position, long end)
      Specified by:
      setAndCheckStartPositionEnd in interface org.apache.datasketches.memory.BaseBuffer
    • equalTo

      public boolean equalTo(long thisOffsetBytes, Object that, long thatOffsetBytes, long lengthBytes)
      Specified by:
      equalTo in interface org.apache.datasketches.memory.BaseState