1 // This file was generated by
2 //     //third_party/jni_zero/jni_zero.py
3 // For
4 //     java.lang.Runnable
5 
6 #ifndef java_lang_Runnable_JNI
7 #define java_lang_Runnable_JNI
8 
9 #include <jni.h>
10 
11 #include "third_party/jni_zero/jni_export.h"
12 #include "third_party/jni_zero/jni_zero_internal.h"
13 // Class Accessors.
14 #ifndef java_lang_Runnable_clazz_defined
15 #define java_lang_Runnable_clazz_defined
java_lang_Runnable_clazz(JNIEnv * env)16 inline jclass java_lang_Runnable_clazz(JNIEnv* env) {
17   static const char kClassName[] = "java.lang.Runnable";
18   static std::atomic<jclass> cached_class;
19   return jni_zero::internal::LazyGetClass(env, kClassName, &cached_class);
20 }
21 #endif
22 
23 namespace JNI_Runnable {
24 // Native to Java functions
Java_Runnable_run(JNIEnv * env,const jni_zero::JavaRef<jobject> & obj)25 [[maybe_unused]] static void Java_Runnable_run(
26     JNIEnv* env,
27     const jni_zero::JavaRef<jobject>& obj) {
28   static std::atomic<jmethodID> cached_method_id(nullptr);
29   jclass clazz = java_lang_Runnable_clazz(env);
30   CHECK_CLAZZ(env, obj.obj(), clazz);
31   jni_zero::internal::JniJavaCallContext<true> call_context;
32   call_context.Init<jni_zero::MethodID::TYPE_INSTANCE>(
33       env,
34       clazz,
35       "run",
36       "()V",
37       &cached_method_id);
38   env->CallVoidMethod(obj.obj(), call_context.method_id());
39 }
40 
41 
42 }  // namespace JNI_Runnable
43 #endif  // java_lang_Runnable_JNI
44