Package org.python.modules.jffi
Class HeapMemory
java.lang.Object
org.python.modules.jffi.HeapMemory
- All Implemented Interfaces:
Memory
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal byte[]array()final intfinal intfinal voidclear()final voidget(long offset, byte[] dst, int off, int len) Reads an array of bytes from the memory area at the specified offset.final voidget(long offset, double[] dst, int off, int len) Reads an array of doubles from the memory area at the specified offset.final voidget(long offset, float[] dst, int off, int len) Reads an array of floats from the memory area at the specified offset.final voidget(long offset, int[] dst, int off, int len) Reads an array of ints from the memory area at the specified offset.final voidget(long offset, long[] dst, int off, int len) Reads an array of longs from the memory area at the specified offset.final voidget(long offset, short[] dst, int off, int len) Reads an array of shorts from the memory area at the specified offset.final longgetAddress(long offset) Reads a pointer value at the specified offset within the memory area.final bytegetByte(long offset) Reads an 8 bit integer value from the memory area.final doublegetDouble(long offset) Reads a double value from the memory area.final floatgetFloat(long offset) Reads a float value from the memory area.final intgetInt(long offset) Reads a 32 bit integer value from the memory area.final longgetLong(long offset) Reads a 64 bit integer value from the memory area.final DirectMemorygetMemory(long offset) Reads a pointer value at the specified offset within the memory area, and wraps it in an abstract memory accessor.final longgetNativeLong(long offset) Reads a native long integer value from the memory area.final shortgetShort(long offset) Reads a 16 bit integer value from the memory area.final byte[]getZeroTerminatedByteArray(long offset) Reads a zero terminated byte array (e.g. an ascii or utf-8 string)final intindexOf(long offset, byte value) Gets the first index within the memory area of a particular 8 bit value.final intindexOf(long offset, byte value, int maxlen) Gets the first index within the memory area of a particular 8 bit value.final booleanisDirect()Checks if the memory area is a native memory pointer.final booleanisNull()Checks if the memory area is NULL.final voidput(long offset, byte[] src, int off, int len) Writes an array of bytes to the memory area at the specified offset.final voidput(long offset, double[] src, int off, int len) Writes an array of doubles to the memory area at the specified offset.final voidput(long offset, float[] src, int off, int len) Writes an array of floats to the memory area at the specified offset.final voidput(long offset, int[] src, int off, int len) Writes an array of ints to the memory area at the specified offset.final voidput(long offset, long[] src, int off, int len) Writes an array of longs to the memory area at the specified offset.final voidput(long offset, short[] src, int off, int len) Writes an array of shorts to the memory area at the specified offset.final voidputAddress(long offset, long value) Writes a pointer value to the memory area at the specified offset.final voidputAddress(long offset, Memory value) Writes a pointer value to the memory area at the specified offset.final voidputByte(long offset, byte value) Writes an 8 bit integer value to the memory area at the specified offset.final voidputDouble(long offset, double value) Writes a 64 bit float value to the memory area at the specified offset.final voidputFloat(long offset, float value) Writes a 32 bit float value to the memory area at the specified offset.final voidputInt(long offset, int value) Writes a 32 bit integer value to the memory area at the specified offset.final voidputLong(long offset, long value) Writes a 64 bit integer value to the memory area at the specified offset.final voidputNativeLong(long offset, long value) Writes a native long integer value to the memory area at the specified offset.final voidputShort(long offset, short value) Writes a 16 bit integer value to the memory area at the specified offset.voidputZeroTerminatedByteArray(long offset, byte[] bytes, int off, int len) Writes a byte array to memory, and appends a zero terminatorfinal voidsetMemory(long offset, long size, byte value) Sets the contents of the memory area to the value.slice(long offset) Creates a new MemoryIO pointing to a subset of the memory area of this MemoryIO.
-
Constructor Details
-
HeapMemory
public HeapMemory(byte[] buffer, int offset, int length) -
HeapMemory
public HeapMemory(int size)
-
-
Method Details
-
array
public final byte[] array() -
arrayOffset
public final int arrayOffset() -
arrayLength
public final int arrayLength() -
isNull
public final boolean isNull()Description copied from interface:MemoryChecks if the memory area is NULL. -
isDirect
public final boolean isDirect()Description copied from interface:MemoryChecks if the memory area is a native memory pointer. -
slice
Description copied from interface:MemoryCreates a new MemoryIO pointing to a subset of the memory area of this MemoryIO. -
getMemory
Description copied from interface:MemoryReads a pointer value at the specified offset within the memory area, and wraps it in an abstract memory accessor. -
putAddress
Description copied from interface:MemoryWrites a pointer value to the memory area at the specified offset.- Specified by:
putAddressin interfaceMemory- Parameters:
offset- The offset within the memory area to write the value.value- The pointer value to write to the memory location.
-
getByte
public final byte getByte(long offset) Description copied from interface:MemoryReads an 8 bit integer value from the memory area. -
getShort
public final short getShort(long offset) Description copied from interface:MemoryReads a 16 bit integer value from the memory area. -
getInt
public final int getInt(long offset) Description copied from interface:MemoryReads a 32 bit integer value from the memory area. -
getLong
public final long getLong(long offset) Description copied from interface:MemoryReads a 64 bit integer value from the memory area. -
getNativeLong
public final long getNativeLong(long offset) Description copied from interface:MemoryReads a native long integer value from the memory area.A native long is 32bits on either ILP32 or LLP64 architectures, and 64 bits on an LP64 architecture.
This means that it will always read a 32bit value on Windows, but on Unix systems such as MacOS or Linux, it will read a 32bit value on 32bit systems, and a 64bit value on 64bit systems.
- Specified by:
getNativeLongin interfaceMemory- Parameters:
offset- The offset within the memory area to read the value.- Returns:
- The native long value read from offset
-
getFloat
public final float getFloat(long offset) Description copied from interface:MemoryReads a float value from the memory area. -
getDouble
public final double getDouble(long offset) Description copied from interface:MemoryReads a double value from the memory area. -
getAddress
public final long getAddress(long offset) Description copied from interface:MemoryReads a pointer value at the specified offset within the memory area.- Specified by:
getAddressin interfaceMemory- Parameters:
offset- The offset within the memory area to read the value.- Returns:
- A long value that represents the address.
-
getZeroTerminatedByteArray
public final byte[] getZeroTerminatedByteArray(long offset) Description copied from interface:MemoryReads a zero terminated byte array (e.g. an ascii or utf-8 string)- Specified by:
getZeroTerminatedByteArrayin interfaceMemory- Parameters:
offset- The offset within the memory area of the start of the string.- Returns:
- A byte array containing a copy of the data.
-
putByte
public final void putByte(long offset, byte value) Description copied from interface:MemoryWrites an 8 bit integer value to the memory area at the specified offset. -
putShort
public final void putShort(long offset, short value) Description copied from interface:MemoryWrites a 16 bit integer value to the memory area at the specified offset. -
putInt
public final void putInt(long offset, int value) Description copied from interface:MemoryWrites a 32 bit integer value to the memory area at the specified offset. -
putLong
public final void putLong(long offset, long value) Description copied from interface:MemoryWrites a 64 bit integer value to the memory area at the specified offset. -
putNativeLong
public final void putNativeLong(long offset, long value) Description copied from interface:MemoryWrites a native long integer value to the memory area at the specified offset.- Specified by:
putNativeLongin interfaceMemory- Parameters:
offset- The offset within the memory area to write the value.value- The native long integer value to write to the memory location.
-
putFloat
public final void putFloat(long offset, float value) Description copied from interface:MemoryWrites a 32 bit float value to the memory area at the specified offset. -
putDouble
public final void putDouble(long offset, double value) Description copied from interface:MemoryWrites a 64 bit float value to the memory area at the specified offset. -
putAddress
public final void putAddress(long offset, long value) Description copied from interface:MemoryWrites a pointer value to the memory area at the specified offset.- Specified by:
putAddressin interfaceMemory- Parameters:
offset- The offset within the memory area to write the value.value- The pointer value to write to the memory location.
-
putZeroTerminatedByteArray
public void putZeroTerminatedByteArray(long offset, byte[] bytes, int off, int len) Description copied from interface:MemoryWrites a byte array to memory, and appends a zero terminator- Specified by:
putZeroTerminatedByteArrayin interfaceMemory- Parameters:
offset- The offset within the memory area of the start of the string.bytes- The byte array to write to the memory.off- The offset with the byte array to start copying.len- The number of bytes of the byte array to write to the memory area. (not including zero byte)
-
get
public final void get(long offset, byte[] dst, int off, int len) Description copied from interface:MemoryReads an array of bytes from the memory area at the specified offset. -
put
public final void put(long offset, byte[] src, int off, int len) Description copied from interface:MemoryWrites an array of bytes to the memory area at the specified offset. -
get
public final void get(long offset, short[] dst, int off, int len) Description copied from interface:MemoryReads an array of shorts from the memory area at the specified offset. -
put
public final void put(long offset, short[] src, int off, int len) Description copied from interface:MemoryWrites an array of shorts to the memory area at the specified offset. -
get
public final void get(long offset, int[] dst, int off, int len) Description copied from interface:MemoryReads an array of ints from the memory area at the specified offset. -
put
public final void put(long offset, int[] src, int off, int len) Description copied from interface:MemoryWrites an array of ints to the memory area at the specified offset. -
get
public final void get(long offset, long[] dst, int off, int len) Description copied from interface:MemoryReads an array of longs from the memory area at the specified offset. -
put
public final void put(long offset, long[] src, int off, int len) Description copied from interface:MemoryWrites an array of longs to the memory area at the specified offset. -
get
public final void get(long offset, float[] dst, int off, int len) Description copied from interface:MemoryReads an array of floats from the memory area at the specified offset. -
put
public final void put(long offset, float[] src, int off, int len) Description copied from interface:MemoryWrites an array of floats to the memory area at the specified offset. -
get
public final void get(long offset, double[] dst, int off, int len) Description copied from interface:MemoryReads an array of doubles from the memory area at the specified offset. -
put
public final void put(long offset, double[] src, int off, int len) Description copied from interface:MemoryWrites an array of doubles to the memory area at the specified offset. -
indexOf
public final int indexOf(long offset, byte value) Description copied from interface:MemoryGets the first index within the memory area of a particular 8 bit value. -
indexOf
public final int indexOf(long offset, byte value, int maxlen) Description copied from interface:MemoryGets the first index within the memory area of a particular 8 bit value. -
setMemory
public final void setMemory(long offset, long size, byte value) Description copied from interface:MemorySets the contents of the memory area to the value. -
clear
public final void clear()
-