Package club.doki7.ffm.ptr
package club.doki7.ffm.ptr
Utility classes encapsulating MemorySegment, providing type-safe way
to access native memory.
Quick start
Java 22 FFM presents a new way to access native memory, using the new
MemorySegment. However, unlike previous practices like
Buffer, MemorySegment does not have any type
information attached to it. Type information are more relevant with read/write operations,
not the memory segment itself.
In order to fill the gap, a dozen of handy pointer wrapper types are provided in this package.
For example, to manipulate a pointer to integer(s), you may use
IntPtr:
try (Arena arena = Arena.ofConfined()) {
IntPtr ptr = IntPtr.allocate(arena);
ptr.write(42);
assert ptr.read() == 42;
// pointer to an array of integers
int[] arr = {1, 2, 3, 4, 5};
IntPtr pArray = IntPtr.allocate(arena, arr); // copy from Java array
assert pArray.size() == 5;
for (int i = 0; i < pArray.size(); i++) {
assert pArray.read(i) == arr[i];
}
}
See the documentation of classes in this package for more details.
-
Record ClassesClassDescriptionRepresents a pointer to byte(s) in native memory.Represents a pointer to 32-bit integer(s) in native memory.Represents a pointer to 64-bit double-precision float(s) in native memoryRepresents a pointer to 32-bit float(s) in native memoryRepresents a pointer to 32-bit integer(s) in native memory.Represents a pointer to 64-bit long integer(s) in native memory.Represents a pointer to pointer(s) in native memory.Represents a pointer to 16-bit short integer(s) in native memory.Represents a pointer to C
wchar_telement(s) in native memory.