Class HeapBytez

java.lang.Object
org.nustaq.offheap.bytez.onheap.HeapBytez
All Implemented Interfaces:
BasicBytez, ByteSink, ByteSource, Bytez, VolatileByteAccess

public class HeapBytez extends Object implements Bytez, VolatileByteAccess
byte array abstraction based on heap byte arrays. FIXME: Should be moved to ordinary safe access as it really seems not to make a big difference.
  • Constructor Details

    • HeapBytez

      public HeapBytez(byte[] base)
    • HeapBytez

      public HeapBytez(int size)
    • HeapBytez

      public HeapBytez(byte[] base, long offIndex)
    • HeapBytez

      public HeapBytez(byte[] base, long offIndex, long len)
  • Method Details

    • setBase

      public void setBase(byte[] base, long offIndex, long len)
    • slice

      public HeapBytez slice(long off, int len)
      Specified by:
      slice in interface Bytez
    • get

      public byte get(long byteIndex)
      Specified by:
      get in interface BasicBytez
      Specified by:
      get in interface ByteSource
    • getBool

      public boolean getBool(long byteIndex)
      Specified by:
      getBool in interface BasicBytez
    • getChar

      public char getChar(long byteIndex)
      Specified by:
      getChar in interface BasicBytez
    • getShort

      public short getShort(long byteIndex)
      Specified by:
      getShort in interface BasicBytez
    • getInt

      public int getInt(long byteIndex)
      Specified by:
      getInt in interface BasicBytez
    • getLong

      public long getLong(long byteIndex)
      Specified by:
      getLong in interface BasicBytez
    • getFloat

      public float getFloat(long byteIndex)
      Specified by:
      getFloat in interface BasicBytez
    • getDouble

      public double getDouble(long byteIndex)
      Specified by:
      getDouble in interface BasicBytez
    • put

      public void put(long byteIndex, byte value)
      Specified by:
      put in interface BasicBytez
      Specified by:
      put in interface ByteSink
    • putBool

      public void putBool(long byteIndex, boolean val)
      Specified by:
      putBool in interface BasicBytez
    • putChar

      public void putChar(long byteIndex, char c)
      Specified by:
      putChar in interface BasicBytez
    • putShort

      public void putShort(long byteIndex, short s)
      Specified by:
      putShort in interface BasicBytez
    • putInt

      public void putInt(long byteIndex, int i)
      Specified by:
      putInt in interface BasicBytez
    • putLong

      public void putLong(long byteIndex, long l)
      Specified by:
      putLong in interface BasicBytez
    • putFloat

      public void putFloat(long byteIndex, float f)
      Specified by:
      putFloat in interface BasicBytez
    • putDouble

      public void putDouble(long byteIndex, double d)
      Specified by:
      putDouble in interface BasicBytez
    • length

      public long length()
      Specified by:
      length in interface BasicBytez
      Specified by:
      length in interface ByteSink
      Specified by:
      length in interface ByteSource
    • getArr

      public void getArr(long byteIndex, byte[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      copy to a byte array
      Specified by:
      getArr in interface BasicBytez
      Parameters:
      byteIndex - - offset index in this buffer to start copying
      target - - array to copy to
      elemoff - - offset in target array
      numElems - - length to copy to
    • getCharArr

      public void getCharArr(long byteIndex, char[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      see getArr
      Specified by:
      getCharArr in interface BasicBytez
    • getShortArr

      public void getShortArr(long byteIndex, short[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      see getArr
      Specified by:
      getShortArr in interface BasicBytez
    • getIntArr

      public void getIntArr(long byteIndex, int[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      see getArr
      Specified by:
      getIntArr in interface BasicBytez
    • getLongArr

      public void getLongArr(long byteIndex, long[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      see getArr
      Specified by:
      getLongArr in interface BasicBytez
    • getFloatArr

      public void getFloatArr(long byteIndex, float[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      see getArr
      Specified by:
      getFloatArr in interface BasicBytez
    • getDoubleArr

      public void getDoubleArr(long byteIndex, double[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      see getArr
      Specified by:
      getDoubleArr in interface BasicBytez
    • getBooleanArr

      public void getBooleanArr(long byteIndex, boolean[] target, int elemoff, int numElems)
      Description copied from interface: BasicBytez
      see getArr
      Specified by:
      getBooleanArr in interface BasicBytez
    • set

      public void set(long byteIndex, byte[] source, int elemoff, int numElems)
      Specified by:
      set in interface BasicBytez
    • setChar

      public void setChar(long byteIndex, char[] source, int elemoff, int numElems)
      Specified by:
      setChar in interface BasicBytez
    • setShort

      public void setShort(long byteIndex, short[] source, int elemoff, int numElems)
      Specified by:
      setShort in interface BasicBytez
    • setInt

      public void setInt(long byteIndex, int[] source, int elemoff, int numElems)
      Specified by:
      setInt in interface BasicBytez
    • setLong

      public void setLong(long byteIndex, long[] source, int elemoff, int numElems)
      Specified by:
      setLong in interface BasicBytez
    • setFloat

      public void setFloat(long byteIndex, float[] source, int elemoff, int numElems)
      Specified by:
      setFloat in interface BasicBytez
    • setDouble

      public void setDouble(long byteIndex, double[] source, int elemoff, int numElems)
      Specified by:
      setDouble in interface BasicBytez
    • setBoolean

      public void setBoolean(long byteIndex, boolean[] o, int elemoff, int numElems)
      Specified by:
      setBoolean in interface BasicBytez
    • copyTo

      public void copyTo(BasicBytez other, long otherByteIndex, long myByteIndex, long lenBytes)
      Specified by:
      copyTo in interface BasicBytez
      Specified by:
      copyTo in interface ByteSink
    • newInstance

      public BasicBytez newInstance(long size)
      Specified by:
      newInstance in interface BasicBytez
    • compareAndSwapInt

      public boolean compareAndSwapInt(long offset, int expect, int newVal)
      Specified by:
      compareAndSwapInt in interface Bytez
    • compareAndSwapLong

      public boolean compareAndSwapLong(long offset, long expect, long newVal)
      Specified by:
      compareAndSwapLong in interface Bytez
    • toBytes

      public byte[] toBytes(long startIndex, int len)
      Specified by:
      toBytes in interface Bytez
    • asByteArray

      public byte[] asByteArray()
      Specified by:
      asByteArray in interface Bytez
      Returns:
      return the underlying byte array, not supported by MallocBytez !. Use getArr to extract data by copy instead.
    • getBAOffsetIndex

      public int getBAOffsetIndex()
      Specified by:
      getBAOffsetIndex in interface Bytez
      Returns:
      the start index inside the byte array returned by asByteArray, not supported by MallocBytez
    • getBALength

      public int getBALength()
      Specified by:
      getBALength in interface Bytez
      Returns:
      the length inside the byte array returned by asByteArray, not supported by MallocBytez
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • getBoolVolatile

      public boolean getBoolVolatile(long byteIndex)
      Specified by:
      getBoolVolatile in interface VolatileByteAccess
    • getVolatile

      public byte getVolatile(long byteIndex)
      Specified by:
      getVolatile in interface VolatileByteAccess
    • getCharVolatile

      public char getCharVolatile(long byteIndex)
      Specified by:
      getCharVolatile in interface VolatileByteAccess
    • getShortVolatile

      public short getShortVolatile(long byteIndex)
      Specified by:
      getShortVolatile in interface VolatileByteAccess
    • getIntVolatile

      public int getIntVolatile(long byteIndex)
      Specified by:
      getIntVolatile in interface VolatileByteAccess
    • getLongVolatile

      public long getLongVolatile(long byteIndex)
      Specified by:
      getLongVolatile in interface VolatileByteAccess
    • getFloatVolatile

      public float getFloatVolatile(long byteIndex)
      Specified by:
      getFloatVolatile in interface VolatileByteAccess
    • getDoubleVolatile

      public double getDoubleVolatile(long byteIndex)
      Specified by:
      getDoubleVolatile in interface VolatileByteAccess
    • putBoolVolatile

      public void putBoolVolatile(long byteIndex, boolean value)
      Specified by:
      putBoolVolatile in interface VolatileByteAccess
    • putVolatile

      public void putVolatile(long byteIndex, byte value)
      Specified by:
      putVolatile in interface VolatileByteAccess
    • putCharVolatile

      public void putCharVolatile(long byteIndex, char c)
      Specified by:
      putCharVolatile in interface VolatileByteAccess
    • putShortVolatile

      public void putShortVolatile(long byteIndex, short s)
      Specified by:
      putShortVolatile in interface VolatileByteAccess
    • putIntVolatile

      public void putIntVolatile(long byteIndex, int i)
      Specified by:
      putIntVolatile in interface VolatileByteAccess
    • putLongVolatile

      public void putLongVolatile(long byteIndex, long l)
      Specified by:
      putLongVolatile in interface VolatileByteAccess
    • putFloatVolatile

      public void putFloatVolatile(long byteIndex, float f)
      Specified by:
      putFloatVolatile in interface VolatileByteAccess
    • putDoubleVolatile

      public void putDoubleVolatile(long byteIndex, double d)
      Specified by:
      putDoubleVolatile in interface VolatileByteAccess
    • getBase

      public byte[] getBase()
    • getOff

      public long getOff()
      Returns:
      offset to byte array INCLUDING native bytearray header
    • getOffsetIndex

      public long getOffsetIndex()
      Returns:
      offset to byte array EXCLUDING native bytearray header
    • toString

      public String toString()
      Overrides:
      toString in class Object