8#ifndef META_OCEAN_PLATFORM_ANDROID_SCOPED_JNI_OBJECT_H
9#define META_OCEAN_PLATFORM_ANDROID_SCOPED_JNI_OBJECT_H
24template <
typename T>
class ScopedJNIObject;
127 inline operator T()
const;
147 explicit inline operator bool()
const;
186 *
this = std::move(
object);
191 jniEnvironment_(scopedJNIEnvironment.jniEnv()),
199 jniEnvironment_(&jniEnvironment),
214 ocean_assert(isValid());
216 if (globalObject_ ==
nullptr)
218 globalObject_ = T(jniEnvironment_->NewGlobalRef(object_));
225 if (globalObject_ !=
nullptr)
227 ocean_assert(jniEnvironment_ !=
nullptr);
228 jniEnvironment_->DeleteGlobalRef(globalObject_);
229 globalObject_ =
nullptr;
234 ocean_assert(jniEnvironment_ !=
nullptr);
235 jniEnvironment_->DeleteLocalRef(object_);
243 return object_ !=
nullptr;
249 return globalObject_ !=
nullptr;
255 if (globalObject_ !=
nullptr)
257 ocean_assert(object_ !=
nullptr);
258 return globalObject_;
273 ocean_assert(isValid());
281 ocean_assert(isValid());
299 jniEnvironment_ =
object.jniEnvironment_;
300 object_ = std::move(
object.object_);
301 globalObject_ = std::move(
object.globalObject_);
303 object.jniEnvironment_ =
nullptr;
304 object.object_ = T();
305 object.globalObject_ = T();
The namespace covering the entire Ocean framework.
Definition Accessor.h:15