Class 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 Detail

      • SafeWritableBuffer

        public SafeWritableBuffer​(ByteBuffer buffer)
    • Method Detail

      • 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