Package one.microstream.memory.sun
Class JdkInternals
- java.lang.Object
 - 
- one.microstream.memory.sun.JdkInternals
 
 
- 
public final class JdkInternals extends Object
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceJdkInternals.Warning 
- 
Constructor Summary
Constructors Constructor Description JdkInternals() 
- 
Method Summary
Modifier and Type Method Description static longalignAddress(long address)static longallocateMemory(long bytes)static byte[]asByteArray(long value)static byte[]asByteArray(long[] longArray)static longbyteSizeArray_boolean(long elementCount)static longbyteSizeArray_byte(long elementCount)static longbyteSizeArray_char(long elementCount)static longbyteSizeArray_double(long elementCount)static longbyteSizeArray_float(long elementCount)static longbyteSizeArray_int(long elementCount)static longbyteSizeArray_long(long elementCount)static longbyteSizeArray_short(long elementCount)static longbyteSizeArrayObject(long elementCount)static intbyteSizeFieldValue(Class<?> type)static intbyteSizeInstance(Class<?> type)static intbyteSizeObjectHeader()static intbyteSizeReference()static booleancompareAndSwap_int(Object subject, long offset, int expected, int replacement)static booleancompareAndSwap_long(Object subject, long offset, long expected, long replacement)static booleancompareAndSwapObject(Object subject, long offset, Object expected, Object replacement)static voidcopyArrayToAddress(boolean[] array, long targetAddress)static voidcopyArrayToAddress(byte[] array, long targetAddress)static voidcopyArrayToAddress(char[] array, long targetAddress)static voidcopyArrayToAddress(double[] array, long targetAddress)static voidcopyArrayToAddress(float[] array, long targetAddress)static voidcopyArrayToAddress(int[] array, long targetAddress)static voidcopyArrayToAddress(long[] array, long targetAddress)static voidcopyArrayToAddress(short[] array, long targetAddress)static voidcopyRange(long sourceAddress, long targetAddress, long length)static voidcopyRange(Object source, long sourceOffset, Object target, long targetOffset, long length)static voidcopyRangeToArray(long sourceAddress, boolean[] target)static voidcopyRangeToArray(long sourceAddress, byte[] target)static voidcopyRangeToArray(long sourceAddress, char[] target)static voidcopyRangeToArray(long sourceAddress, double[] target)static voidcopyRangeToArray(long sourceAddress, float[] target)static voidcopyRangeToArray(long sourceAddress, int[] target)static voidcopyRangeToArray(long sourceAddress, long[] target)static voidcopyRangeToArray(long sourceAddress, short[] target)static booleandeallocateDirectBuffer(ByteBuffer directBuffer)static DirectBufferDeallocatorDirectBufferDeallocator()static voidensureClassInitialized(Class<?> c)static voidensureClassInitialized(Class<?>... classes)static voidfillMemory(long address, long length, byte value)static voidfreeMemory(long address)static booleanget_boolean(long address)static booleanget_boolean(Object instance, long offset)static byteget_byte(long address)static byteget_byte(Object instance, long offset)static charget_char(long address)static charget_char(Object instance, long offset)static doubleget_double(long address)static doubleget_double(Object instance, long offset)static floatget_float(long address)static floatget_float(Object instance, long offset)static intget_int(long address)static intget_int(Object instance, long offset)static longget_long(long address)static longget_long(Object instance, long offset)static shortget_short(long address)static shortget_short(Object instance, long offset)static DirectBufferAddressGettergetDirectBufferAddressGetter()static DirectBufferDeallocatorgetDirectBufferDeallocator()static longgetDirectByteBufferAddress(ByteBuffer directBuffer)static sun.misc.UnsafegetMemoryAccess()static ObjectgetObject(Object instance, long offset)static ObjectgetStaticFieldBase(Field field)static long[]getStaticFieldOffsets(Field[] fields)static voidguaranteeUsability()Guarantees the full usability of this class by validating if all functionality is usable.static List<JdkInternals.Warning>initializationWarnings()static <T> TinstantiateBlank(Class<T> c)static DefaultInstantiatorInstantiatorBlank()static booleaninternalDeallocateDirectBuffer(ByteBuffer directBuffer)static longinternalGetDirectByteBufferAddress(ByteBuffer directBuffer)static longobjectFieldOffset(Field field)Return the field value's arithmetic memory offset relative to the object base offset.static long[]objectFieldOffsets(Field... fields)Array alias vor #objectFieldOffset(Field).static intpageSize()static voidprintInitializationWarnings(PrintStream printStream)static longreallocateMemory(long address, long bytes)static voidset_boolean(long address, boolean value)static voidset_boolean(Object instance, long offset, boolean value)static voidset_booleanInBytes(byte[] bytes, int index, boolean value)static voidset_byte(long address, byte value)static voidset_byte(Object instance, long offset, byte value)static voidset_byteInBytes(byte[] bytes, int index, byte value)static voidset_char(long address, char value)static voidset_char(Object instance, long offset, char value)static voidset_charInBytes(byte[] bytes, int index, char value)static voidset_double(long address, double value)static voidset_double(Object instance, long offset, double value)static voidset_doubleInBytes(byte[] bytes, int index, double value)static voidset_float(long address, float value)static voidset_float(Object instance, long offset, float value)static voidset_floatInBytes(byte[] bytes, int index, float value)static voidset_int(long address, int value)static voidset_int(Object instance, long offset, int value)static voidset_intInBytes(byte[] bytes, int index, int value)static voidset_long(long address, long value)static voidset_long(Object instance, long offset, long value)static voidset_longInBytes(byte[] bytes, int index, long value)static voidset_short(long address, short value)static voidset_short(Object instance, long offset, short value)static voidset_shortInBytes(byte[] bytes, int index, short value)static voidsetDirectBufferAddressGetter(DirectBufferAddressGetter addressGetter)Allows to set theDirectBufferAddressGetterused bygetDirectByteBufferAddress(ByteBuffer)as an override to the means this class inherently tries to provide.
SeeDirectBufferAddressGetterfor details.static voidsetDirectBufferDeallocator(DirectBufferDeallocator deallocator)Allows to set theDirectBufferDeallocatorused bydeallocateDirectBuffer(ByteBuffer)as an override to the means this class inherently tries to provide.
SeeDirectBufferDeallocatorfor details.static voidsetObject(Object instance, long offset, Object value)static voidthrowUnchecked(Throwable t) 
 - 
 
- 
- 
Method Detail
- 
getMemoryAccess
public static final sun.misc.Unsafe getMemoryAccess()
 
- 
guaranteeUsability
public static void guaranteeUsability()
Guarantees the full usability of this class by validating if all functionality is usable.- Throws:
 Error
 
- 
initializationWarnings
public static final List<JdkInternals.Warning> initializationWarnings()
 
- 
printInitializationWarnings
public static final void printInitializationWarnings(PrintStream printStream)
 
- 
setDirectBufferDeallocator
public static void setDirectBufferDeallocator(DirectBufferDeallocator deallocator)
Allows to set theDirectBufferDeallocatorused bydeallocateDirectBuffer(ByteBuffer)as an override to the means this class inherently tries to provide.
SeeDirectBufferDeallocatorfor details.The passed instance "should" be immutable or better stateless to ensure concurrency-safe usage, but ultimately, the responsibility resides with the author of the instance's implementation.
Passing a null resets the behavior of
deallocateDirectBuffer(ByteBuffer)to the inherent logic.- Parameters:
 deallocator- the deallocator to be used, potentially null.- See Also:
 DirectBufferDeallocator
 
- 
getDirectBufferDeallocator
public static DirectBufferDeallocator getDirectBufferDeallocator()
 
- 
setDirectBufferAddressGetter
public static void setDirectBufferAddressGetter(DirectBufferAddressGetter addressGetter)
Allows to set theDirectBufferAddressGetterused bygetDirectByteBufferAddress(ByteBuffer)as an override to the means this class inherently tries to provide.
SeeDirectBufferAddressGetterfor details.The passed instance "should" be immutable or better stateless to ensure concurrency-safe usage, but ultimately, the responsibility resides with the author of the instance's implementation.
Passing a null resets the behavior of
getDirectByteBufferAddress(ByteBuffer)to the inherent logic.- Parameters:
 addressGetter- the addressGetter to be used, potentially null.- See Also:
 DirectBufferDeallocator
 
- 
getDirectBufferAddressGetter
public static DirectBufferAddressGetter getDirectBufferAddressGetter()
 
- 
internalGetDirectByteBufferAddress
public static final long internalGetDirectByteBufferAddress(ByteBuffer directBuffer)
 
- 
getDirectByteBufferAddress
public static final long getDirectByteBufferAddress(ByteBuffer directBuffer)
 
- 
internalDeallocateDirectBuffer
public static final boolean internalDeallocateDirectBuffer(ByteBuffer directBuffer)
 
- 
deallocateDirectBuffer
public static final boolean deallocateDirectBuffer(ByteBuffer directBuffer)
 
- 
allocateMemory
public static final long allocateMemory(long bytes)
 
- 
reallocateMemory
public static final long reallocateMemory(long address, long bytes) 
- 
freeMemory
public static final void freeMemory(long address)
 
- 
fillMemory
public static final void fillMemory(long address, long length, byte value) 
- 
get_byte
public static final byte get_byte(long address)
 
- 
get_boolean
public static final boolean get_boolean(long address)
 
- 
get_short
public static final short get_short(long address)
 
- 
get_char
public static final char get_char(long address)
 
- 
get_int
public static final int get_int(long address)
 
- 
get_float
public static final float get_float(long address)
 
- 
get_long
public static final long get_long(long address)
 
- 
get_double
public static final double get_double(long address)
 
- 
get_byte
public static byte get_byte(Object instance, long offset)
 
- 
get_boolean
public static boolean get_boolean(Object instance, long offset)
 
- 
get_short
public static short get_short(Object instance, long offset)
 
- 
get_char
public static char get_char(Object instance, long offset)
 
- 
get_int
public static int get_int(Object instance, long offset)
 
- 
get_float
public static float get_float(Object instance, long offset)
 
- 
get_long
public static long get_long(Object instance, long offset)
 
- 
get_double
public static double get_double(Object instance, long offset)
 
- 
set_byte
public static void set_byte(long address, byte value) 
- 
set_boolean
public static void set_boolean(long address, boolean value) 
- 
set_short
public static void set_short(long address, short value) 
- 
set_char
public static void set_char(long address, char value) 
- 
set_int
public static void set_int(long address, int value) 
- 
set_float
public static void set_float(long address, float value) 
- 
set_long
public static void set_long(long address, long value) 
- 
set_double
public static void set_double(long address, double value) 
- 
set_byte
public static final void set_byte(Object instance, long offset, byte value)
 
- 
set_boolean
public static final void set_boolean(Object instance, long offset, boolean value)
 
- 
set_short
public static void set_short(Object instance, long offset, short value)
 
- 
set_char
public static final void set_char(Object instance, long offset, char value)
 
- 
set_int
public static final void set_int(Object instance, long offset, int value)
 
- 
set_float
public static final void set_float(Object instance, long offset, float value)
 
- 
set_long
public static final void set_long(Object instance, long offset, long value)
 
- 
set_double
public static final void set_double(Object instance, long offset, double value)
 
- 
set_byteInBytes
public static final void set_byteInBytes(byte[] bytes, int index, byte value) 
- 
set_booleanInBytes
public static final void set_booleanInBytes(byte[] bytes, int index, boolean value) 
- 
set_shortInBytes
public static final void set_shortInBytes(byte[] bytes, int index, short value) 
- 
set_charInBytes
public static final void set_charInBytes(byte[] bytes, int index, char value) 
- 
set_intInBytes
public static final void set_intInBytes(byte[] bytes, int index, int value) 
- 
set_floatInBytes
public static final void set_floatInBytes(byte[] bytes, int index, float value) 
- 
set_longInBytes
public static final void set_longInBytes(byte[] bytes, int index, long value) 
- 
set_doubleInBytes
public static final void set_doubleInBytes(byte[] bytes, int index, double value) 
- 
copyRange
public static final void copyRange(long sourceAddress, long targetAddress, long length) 
- 
copyRange
public static final void copyRange(Object source, long sourceOffset, Object target, long targetOffset, long length)
 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, byte[] target) 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, boolean[] target) 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, short[] target) 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, char[] target) 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, int[] target) 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, float[] target) 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, long[] target) 
- 
copyRangeToArray
public static final void copyRangeToArray(long sourceAddress, double[] target) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(byte[] array, long targetAddress) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(boolean[] array, long targetAddress) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(short[] array, long targetAddress) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(char[] array, long targetAddress) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(int[] array, long targetAddress) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(float[] array, long targetAddress) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(long[] array, long targetAddress) 
- 
copyArrayToAddress
public static final void copyArrayToAddress(double[] array, long targetAddress) 
- 
asByteArray
public static final byte[] asByteArray(long[] longArray)
 
- 
asByteArray
public static final byte[] asByteArray(long value)
 
- 
objectFieldOffset
public static final long objectFieldOffset(Field field)
Return the field value's arithmetic memory offset relative to the object base offset.- Parameters:
 field-- Returns:
 - the field value's memory offset.
 
 
- 
objectFieldOffsets
public static final long[] objectFieldOffsets(Field... fields)
Array alias vor #objectFieldOffset(Field). 
- 
ensureClassInitialized
public static final void ensureClassInitialized(Class<?> c)
 
- 
ensureClassInitialized
public static final void ensureClassInitialized(Class<?>... classes)
 
- 
instantiateBlank
public static final <T> T instantiateBlank(Class<T> c) throws InstantiationRuntimeException
- Throws:
 InstantiationRuntimeException
 
- 
InstantiatorBlank
public static final DefaultInstantiator InstantiatorBlank()
 
- 
DirectBufferDeallocator
public static final DirectBufferDeallocator DirectBufferDeallocator()
 
- 
pageSize
public static int pageSize()
 
- 
byteSizeReference
public static final int byteSizeReference()
 
- 
byteSizeInstance
public static int byteSizeInstance(Class<?> type)
 
- 
byteSizeObjectHeader
public static final int byteSizeObjectHeader()
 
- 
byteSizeFieldValue
public static final int byteSizeFieldValue(Class<?> type)
 
- 
byteSizeArray_byte
public static final long byteSizeArray_byte(long elementCount)
 
- 
byteSizeArray_boolean
public static final long byteSizeArray_boolean(long elementCount)
 
- 
byteSizeArray_short
public static final long byteSizeArray_short(long elementCount)
 
- 
byteSizeArray_char
public static final long byteSizeArray_char(long elementCount)
 
- 
byteSizeArray_int
public static final long byteSizeArray_int(long elementCount)
 
- 
byteSizeArray_float
public static final long byteSizeArray_float(long elementCount)
 
- 
byteSizeArray_long
public static final long byteSizeArray_long(long elementCount)
 
- 
byteSizeArray_double
public static final long byteSizeArray_double(long elementCount)
 
- 
byteSizeArrayObject
public static final long byteSizeArrayObject(long elementCount)
 
- 
throwUnchecked
public static final void throwUnchecked(Throwable t)
 
- 
compareAndSwap_int
public static final boolean compareAndSwap_int(Object subject, long offset, int expected, int replacement)
 
- 
compareAndSwap_long
public static final boolean compareAndSwap_long(Object subject, long offset, long expected, long replacement)
 
- 
compareAndSwapObject
public static final boolean compareAndSwapObject(Object subject, long offset, Object expected, Object replacement)
 
- 
alignAddress
public static final long alignAddress(long address)
 
- 
getStaticFieldOffsets
public static long[] getStaticFieldOffsets(Field[] fields)
 
 - 
 
 -