Package com.kenai.jffi
Class ClosureMagazine.Handle
java.lang.Object
com.kenai.jffi.ClosureMagazine.Handle
- All Implemented Interfaces:
Closure.Handle
- Enclosing class:
ClosureMagazine
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final long
private final long
private final ClosureMagazine
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Handle
(ClosureMagazine magazine, long closureAddress, long codeAddress) -
Method Summary
Modifier and TypeMethodDescriptionvoid
dispose()
Releases the closure memory back to the operating system.void
free()
long
Gets the native code address of the closure.void
setAutoRelease
(boolean autorelease) Sets whether the closure memory should be released when theHandle
is garbage collected or not.
-
Field Details
-
magazine
-
closureAddress
private final long closureAddress -
codeAddress
private final long codeAddress
-
-
Constructor Details
-
Handle
-
-
Method Details
-
getAddress
public long getAddress()Description copied from interface:Closure.Handle
Gets the native code address of the closure. This can be passed into a native function that takes a function pointer.- Specified by:
getAddress
in interfaceClosure.Handle
- Returns:
- The native address of the closure code.
-
setAutoRelease
public void setAutoRelease(boolean autorelease) Description copied from interface:Closure.Handle
Sets whether the closure memory should be released when theHandle
is garbage collected or not.- Specified by:
setAutoRelease
in interfaceClosure.Handle
- Parameters:
autorelease
- If true, the closure memory is automatically managed, else the closure memory must be explicitly freed.
-
dispose
public void dispose()Description copied from interface:Closure.Handle
Releases the closure memory back to the operating system. Although the closure trampoline memory will normally be released when theHandle
is garbage collected, this may not happen for some time, and is non-deterministic. This allows explicit control over memory reclamation.- Specified by:
dispose
in interfaceClosure.Handle
-
free
public void free()- Specified by:
free
in interfaceClosure.Handle
-