52 LocalRef(JNIEnv *_env, T _value):env(_env), value(_value) {
53 assert(env !=
nullptr);
54 assert(value !=
nullptr);
58 env->DeleteLocalRef(value);
88 assert(env !=
nullptr);
89 assert(value !=
nullptr);
91 value = (T)env->NewGlobalRef(value);
95 GetEnv()->DeleteGlobalRef(value);
105 void Set(JNIEnv *env, T _value) {
106 assert(_value !=
nullptr);
108 value = (T)env->NewGlobalRef(_value);
138 return value !=
nullptr;
145 void Set(JNIEnv *env, T _value) {
146 assert(value ==
nullptr);
147 assert(_value !=
nullptr);
149 value = (T)env->NewGlobalRef(_value);
156 assert(value !=
nullptr);
158 env->DeleteGlobalRef(value);
167 if (value !=
nullptr)
void Set(JNIEnv *env, T _value)
Obtain a global reference on the specified object and store it.
void ClearOptional(JNIEnv *env)
Release the global reference and clear this object.
Hold a global reference on a JNI object.
TrivialRef & operator=(const TrivialRef &other)=delete
void Set(JNIEnv *env, T _value)
Sets the object, ignoring the previous value.
Container for a global reference to a JNI object that gets initialised and deinitialised explicitly...
GlobalRef()=default
Constructs an uninitialized object.
static gcc_pure JNIEnv * GetEnv()
LocalRef & operator=(const LocalRef &other)=delete
GlobalRef(JNIEnv *env, T _value)
void Clear(JNIEnv *env)
Release the global reference and clear this object.
LocalRef(JNIEnv *_env, T _value)
The local reference is obtained by the caller.
Hold a local reference on a JNI object.
GlobalRef & operator=(const GlobalRef &other)=delete