Package com.kenai.jffi
Class ClosureMagazine.Handle
- java.lang.Object
-
- com.kenai.jffi.ClosureMagazine.Handle
-
- All Implemented Interfaces:
Closure.Handle
- Enclosing class:
- ClosureMagazine
private static final class ClosureMagazine.Handle extends java.lang.Object implements Closure.Handle
-
-
Field Summary
Fields Modifier and Type Field Description private longclosureAddressprivate longcodeAddressprivate ClosureMagazinemagazine
-
Constructor Summary
Constructors Modifier Constructor Description privateHandle(ClosureMagazine magazine, long closureAddress, long codeAddress)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddispose()Releases the closure memory back to the operating system.voidfree()longgetAddress()Gets the native code address of the closure.voidsetAutoRelease(boolean autorelease)Sets whether the closure memory should be released when theHandleis garbage collected or not.
-
-
-
Field Detail
-
magazine
private final ClosureMagazine magazine
-
closureAddress
private final long closureAddress
-
codeAddress
private final long codeAddress
-
-
Constructor Detail
-
Handle
private Handle(ClosureMagazine magazine, long closureAddress, long codeAddress)
-
-
Method Detail
-
getAddress
public long getAddress()
Description copied from interface:Closure.HandleGets the native code address of the closure. This can be passed into a native function that takes a function pointer.- Specified by:
getAddressin interfaceClosure.Handle- Returns:
- The native address of the closure code.
-
setAutoRelease
public void setAutoRelease(boolean autorelease)
Description copied from interface:Closure.HandleSets whether the closure memory should be released when theHandleis garbage collected or not.- Specified by:
setAutoReleasein 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.HandleReleases the closure memory back to the operating system. Although the closure trampoline memory will normally be released when theHandleis garbage collected, this may not happen for some time, and is non-deterministic. This allows explicit control over memory reclamation.- Specified by:
disposein interfaceClosure.Handle
-
free
public void free()
- Specified by:
freein interfaceClosure.Handle
-
-