1// This file was generated by 2// //third_party/jni_zero/jni_zero.py 3// For 4// org.jni_zero.SampleUniqueAnnotations 5 6#ifndef org_jni_1zero_SampleUniqueAnnotations_JNI 7#define org_jni_1zero_SampleUniqueAnnotations_JNI 8 9#include <jni.h> 10 11#include "third_party/jni_zero/jni_export.h" 12#include "third_party/jni_zero/jni_zero_helper.h" 13 14// Class Accessors 15#ifndef org_jni_1zero_SampleUniqueAnnotations_clazz_defined 16#define org_jni_1zero_SampleUniqueAnnotations_clazz_defined 17inline jclass org_jni_1zero_SampleUniqueAnnotations_clazz(JNIEnv* env) { 18 static const char kClassName[] = "org/jni_zero/SampleUniqueAnnotations"; 19 static std::atomic<jclass> cached_class; 20 return jni_zero::internal::LazyGetClass(env, kClassName, &cached_class); 21} 22#endif 23 24 25// Java to native functions 26// Forward declaration. To be implemented by the including .cc file. 27static jint JNI_SampleUniqueAnnotations_Bar(JNIEnv* env, jint x, jint y); 28 29JNI_ZERO_BOUNDARY_EXPORT jint Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleUniqueAnnotations_1bar( 30 JNIEnv* env, 31 jclass jcaller, 32 jint x, 33 jint y) { 34 auto _ret = JNI_SampleUniqueAnnotations_Bar(env, x, y); 35 return _ret; 36} 37 38// Forward declaration. To be implemented by the including .cc file. 39static void JNI_SampleUniqueAnnotations_Baz( 40 JNIEnv* env, 41 const jni_zero::JavaParamRef<jobject>& handle); 42 43JNI_ZERO_BOUNDARY_EXPORT void Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleUniqueAnnotations_1baz( 44 JNIEnv* env, 45 jclass jcaller, 46 jobject handle) { 47 JNI_SampleUniqueAnnotations_Baz(env, jni_zero::JavaParamRef<jobject>(env, handle)); 48} 49 50JNI_ZERO_BOUNDARY_EXPORT void Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1SampleUniqueAnnotations_1foo( 51 JNIEnv* env, 52 jclass jcaller, 53 jlong nativePtr, 54 jobject arg) { 55 std::string arg_converted = jni_zero::FromJniType<std::string>( 56 env, 57 jni_zero::JavaParamRef<jobject>(env, arg)); 58 reinterpret_cast<FooAndroid::BarDelegate*>(nativePtr)->Foo(env, arg_converted); 59} 60 61JNI_ZERO_BOUNDARY_EXPORT void Java_org_jni_1zero_SampleUniqueAnnotations_nativeCallWithQualifiedObject( 62 JNIEnv* env, 63 jobject jcaller, 64 jlong nativePtr) { 65 reinterpret_cast<Foo::Bar*>(nativePtr)->CallWithQualifiedObject( 66 env, 67 jni_zero::JavaParamRef<jobject>(env, jcaller)); 68} 69 70 71// Native to Java functions 72static void Java_SampleUniqueAnnotations_useBar1( 73 JNIEnv* env, 74 const jni_zero::JavaRef<jobject>& inner) { 75 static std::atomic<jmethodID> cached_method_id(nullptr); 76 jclass clazz = org_jni_1zero_SampleUniqueAnnotations_clazz(env); 77 CHECK_CLAZZ(env, clazz, clazz); 78 jni_zero::internal::JniJavaCallContext<true> call_context; 79 call_context.Init<jni_zero::MethodID::TYPE_STATIC>( 80 env, 81 clazz, 82 "useBar1", 83 "(Lorg/jni_zero/Bar1$Inner;)V", 84 &cached_method_id); 85 env->CallStaticVoidMethod(clazz, call_context.method_id(), inner.obj()); 86} 87 88 89 90#endif // org_jni_1zero_SampleUniqueAnnotations_JNI 91