public abstract class FunctionPointer extends Pointer
Generator
create a native function type.
A C++ function object gets instantiated for each call to allocate()
as well. That function object can be accessed by annotating any method
parameter with ByVal
or ByRef
. By default, an actual
function pointer gets passed ByPtr
.
To use FunctionPointer, subclass and add a native method named call()
or apply()
, along with its return type and parameters, as well as the
usual native void allocate()
method to support explicit allocation,
which is typically a requirement for callback functions. We can implement a
callback in Java by further subclassing and overriding call/apply()
.
If you have an address to a native function, it is also possible to call it
by defining a ValueSetter
method with a single Pointer
parameter,
along with native
declarations for allocate()
and call()
.
After allocating the object and setting the value, we can be call it from Java.
Generator
Pointer.CustomDeallocator, Pointer.Deallocator, Pointer.DeallocatorReference, Pointer.DeallocatorThread, Pointer.NativeDeallocator
address, capacity, deallocatorThread, limit, maxBytes, maxPhysicalBytes, maxRetries, position
Modifier | Constructor and Description |
---|---|
protected |
FunctionPointer() |
protected |
FunctionPointer(Pointer p) |
address, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, hashCode, init, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetof, parseBytes, physicalBytes, position, position, put, realloc, setNull, sizeof, toString, totalBytes, totalPhysicalBytes, withDeallocator, zero
protected FunctionPointer()
protected FunctionPointer(Pointer p)
Copyright © 2018. All rights reserved.