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, Pointer.ProxyDeallocator, Pointer.ReferenceCounter
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, getDirectBufferAddress, getPointer, getPointer, getPointer, getPointer, hashCode, init, interruptDeallocatorThread, isNull, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetAddress, offsetof, offsetof, parseBytes, physicalBytes, physicalBytesInaccurate, position, position, put, realloc, referenceCount, releaseReference, retainReference, setNull, sizeof, sizeof, toString, totalBytes, totalCount, totalPhysicalBytes, withDeallocator, zero
protected FunctionPointer()
protected FunctionPointer(Pointer p)
Copyright © 2024. All rights reserved.