public class HSObject extends Object
JNIMethodScope
and thus invalid once the scope
exits or a global JNI handle that is only released sometime after the HSObject
dies.Constructor and Description |
---|
HSObject(JNI.JNIEnv env,
JNI.JObject handle)
Creates an object encapsulating a
handle whose lifetime is determined by this object. |
HSObject(JNI.JNIEnv env,
JNI.JObject handle,
boolean allowGlobalDuplicates,
boolean weak)
Creates an object encapsulating a
handle whose lifetime is determined by this object. |
HSObject(JNIMethodScope scope,
JNI.JObject handle)
Creates an object encapsulating a
handle whose lifetime is limited to scope . |
Modifier and Type | Method and Description |
---|---|
static void |
cleanHandles(JNI.JNIEnv env)
Processes
HSObject.CLEANERS_QUEUE to release any handles whose objects are now unreachable. |
JNI.JObject |
getHandle() |
void |
release(JNI.JNIEnv env) |
String |
toString() |
public HSObject(JNI.JNIEnv env, JNI.JObject handle)
handle
whose lifetime is determined by this object.
The created HSObject
uses a JNI global reference and does not allow duplicate JNI
references. Use #HSObject(JNIEnv, JObject, boolean, boolean)
to create
HSObject
using a JNI weak reference or allowing duplicate JNI references.public HSObject(JNI.JNIEnv env, JNI.JObject handle, boolean allowGlobalDuplicates, boolean weak)
handle
whose lifetime is determined by this object.
The created HSObject
possibly allows duplicate JNI global handles.public HSObject(JNIMethodScope scope, JNI.JObject handle)
handle
whose lifetime is limited to scope
.
Once scope.close()
is called, any attempt to use the handle
will result in an IllegalArgumentException
.public final JNI.JObject getHandle()
public final void release(JNI.JNIEnv env)
public static void cleanHandles(JNI.JNIEnv env)
HSObject.CLEANERS_QUEUE
to release any handles whose objects are now unreachable.