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 -
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 MemoryStatisticscreateHeapMemoryStatistics()static MemoryStatisticscreateNonHeapMemoryStatistics()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)static sun.misc.UnsafeVM()
-
Method Details
-
VM
public static sun.misc.Unsafe VM() -
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
-
printInitializationWarnings
-
setDirectBufferDeallocator
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
-
setDirectBufferAddressGetter
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
-
internalGetDirectByteBufferAddress
-
getDirectByteBufferAddress
-
internalDeallocateDirectBuffer
-
deallocateDirectBuffer
-
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
-
get_boolean
-
get_short
-
get_char
-
get_int
-
get_float
-
get_long
-
get_double
-
getObject
-
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
-
set_boolean
-
set_short
-
set_char
-
set_int
-
set_float
-
set_long
-
set_double
-
setObject
-
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
-
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
Return the field value's arithmetic memory offset relative to the object base offset.- Parameters:
field-- Returns:
- the field value's memory offset.
-
objectFieldOffsets
Array alias vor #objectFieldOffset(Field). -
ensureClassInitialized
-
ensureClassInitialized
-
instantiateBlank
- Throws:
InstantiationRuntimeException
-
InstantiatorBlank
-
DirectBufferDeallocator
-
pageSize
public static int pageSize() -
byteSizeReference
public static final int byteSizeReference() -
byteSizeInstance
-
byteSizeObjectHeader
public static final int byteSizeObjectHeader() -
byteSizeFieldValue
-
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
-
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
-
alignAddress
public static final long alignAddress(long address) -
getStaticFieldBase
-
getStaticFieldOffsets
-
createHeapMemoryStatistics
-
createNonHeapMemoryStatistics
-