1// This file was generated by 2// //third_party/jni_zero/jni_zero.py 3// For 4// org.jni_zero.SampleBidirectionalNonProxy 5 6#ifndef org_jni_1zero_SampleBidirectionalNonProxy_JNI 7#define org_jni_1zero_SampleBidirectionalNonProxy_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_SampleBidirectionalNonProxy_clazz_defined 16#define org_jni_1zero_SampleBidirectionalNonProxy_clazz_defined 17inline jclass org_jni_1zero_SampleBidirectionalNonProxy_clazz(JNIEnv* env) { 18 static const char kClassName[] = "org/jni_zero/SampleBidirectionalNonProxy"; 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_SampleBidirectionalNonProxy_Init( 28 JNIEnv* env, 29 const jni_zero::JavaParamRef<jobject>& jcaller); 30 31JNI_ZERO_BOUNDARY_EXPORT jint Java_org_jni_1zero_SampleBidirectionalNonProxy_nativeInit( 32 JNIEnv* env, 33 jobject jcaller) { 34 auto _ret = JNI_SampleBidirectionalNonProxy_Init( 35 env, 36 jni_zero::JavaParamRef<jobject>(env, jcaller)); 37 return _ret; 38} 39 40// Forward declaration. To be implemented by the including .cc file. 41static jint JNI_SampleBidirectionalNonProxy_Init( 42 JNIEnv* env, 43 const jni_zero::JavaParamRef<jobject>& jcaller); 44 45JNI_ZERO_BOUNDARY_EXPORT jint Java_org_jni_1zero_SampleBidirectionalNonProxy_nativeInit( 46 JNIEnv* env, 47 jobject jcaller) { 48 auto _ret = JNI_SampleBidirectionalNonProxy_Init( 49 env, 50 jni_zero::JavaParamRef<jobject>(env, jcaller)); 51 return _ret; 52} 53 54JNI_ZERO_BOUNDARY_EXPORT jint Java_org_jni_1zero_SampleBidirectionalNonProxy_nativeMethod( 55 JNIEnv* env, 56 jobject jcaller, 57 jlong nativeTest, 58 jint arg1) { 59 auto _ret = reinterpret_cast<Test*>(nativeTest)->Method( 60 env, 61 jni_zero::JavaParamRef<jobject>(env, jcaller), 62 arg1); 63 return _ret; 64} 65 66JNI_ZERO_BOUNDARY_EXPORT jint Java_org_jni_1zero_SampleBidirectionalNonProxy_nativeStaticMethod( 67 JNIEnv* env, 68 jclass jcaller, 69 jlong nativeTest, 70 jint arg1) { 71 auto _ret = reinterpret_cast<Test*>(nativeTest)->StaticMethod(env, arg1); 72 return _ret; 73} 74 75 76// Native to Java functions 77static void Java_SampleBidirectionalNonProxy_addStructB( 78 JNIEnv* env, 79 const jni_zero::JavaRef<jobject>& obj, 80 const jni_zero::JavaRef<jobject>& caller, 81 const jni_zero::JavaRef<jobject>& b) { 82 static std::atomic<jmethodID> cached_method_id(nullptr); 83 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 84 CHECK_CLAZZ(env, obj.obj(), clazz); 85 jni_zero::internal::JniJavaCallContext<true> call_context; 86 call_context.Init<jni_zero::MethodID::TYPE_INSTANCE>( 87 env, 88 clazz, 89 "addStructB", 90 "(Lorg/jni_zero/SampleForTests;Lorg/jni_zero/SampleForTests$InnerStructB;)V", 91 &cached_method_id); 92 env->CallVoidMethod(obj.obj(), call_context.method_id(), caller.obj(), b.obj()); 93} 94 95static void Java_SampleBidirectionalNonProxy_setBool( 96 JNIEnv* env, 97 const jni_zero::JavaRef<jobject>& obj, 98 const jni_zero::JavaRef<jobject>& b, 99 const jni_zero::JavaRef<jobject>& i) { 100 static std::atomic<jmethodID> cached_method_id(nullptr); 101 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 102 CHECK_CLAZZ(env, obj.obj(), clazz); 103 jni_zero::internal::JniJavaCallContext<true> call_context; 104 call_context.Init<jni_zero::MethodID::TYPE_INSTANCE>( 105 env, 106 clazz, 107 "setBool", 108 "(Lorg/jni_zero/Boolean;Ljava/lang/Integer;)V", 109 &cached_method_id); 110 env->CallVoidMethod(obj.obj(), call_context.method_id(), b.obj(), i.obj()); 111} 112 113static void Java_SampleBidirectionalNonProxy_setStringBuilder( 114 JNIEnv* env, 115 const jni_zero::JavaRef<jobject>& obj, 116 const jni_zero::JavaRef<jobject>& sb) { 117 static std::atomic<jmethodID> cached_method_id(nullptr); 118 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 119 CHECK_CLAZZ(env, obj.obj(), clazz); 120 jni_zero::internal::JniJavaCallContext<true> call_context; 121 call_context.Init<jni_zero::MethodID::TYPE_INSTANCE>( 122 env, 123 clazz, 124 "setStringBuilder", 125 "(Ljava/lang/StringBuilder;)V", 126 &cached_method_id); 127 env->CallVoidMethod(obj.obj(), call_context.method_id(), sb.obj()); 128} 129 130static jdouble Java_SampleBidirectionalNonProxy_testMethodWithNoParam(JNIEnv* env) { 131 static std::atomic<jmethodID> cached_method_id(nullptr); 132 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 133 CHECK_CLAZZ(env, clazz, clazz, 0); 134 jni_zero::internal::JniJavaCallContext<true> call_context; 135 call_context.Init<jni_zero::MethodID::TYPE_STATIC>( 136 env, 137 clazz, 138 "testMethodWithNoParam", 139 "()D", 140 &cached_method_id); 141 auto _ret = env->CallStaticDoubleMethod(clazz, call_context.method_id()); 142 return _ret; 143} 144 145static void Java_SampleBidirectionalNonProxy_testMethodWithParam( 146 JNIEnv* env, 147 const jni_zero::JavaRef<jobject>& obj, 148 JniIntWrapper iParam) { 149 static std::atomic<jmethodID> cached_method_id(nullptr); 150 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 151 CHECK_CLAZZ(env, obj.obj(), clazz); 152 jni_zero::internal::JniJavaCallContext<true> call_context; 153 call_context.Init<jni_zero::MethodID::TYPE_INSTANCE>( 154 env, 155 clazz, 156 "testMethodWithParam", 157 "(I)V", 158 &cached_method_id); 159 env->CallVoidMethod(obj.obj(), call_context.method_id(), as_jint(iParam)); 160} 161 162static jni_zero::ScopedJavaLocalRef<jstring> Java_SampleBidirectionalNonProxy_testMethodWithParamAndReturn( 163 JNIEnv* env, 164 const jni_zero::JavaRef<jobject>& obj, 165 JniIntWrapper iParam) { 166 static std::atomic<jmethodID> cached_method_id(nullptr); 167 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 168 CHECK_CLAZZ(env, obj.obj(), clazz, nullptr); 169 jni_zero::internal::JniJavaCallContext<true> call_context; 170 call_context.Init<jni_zero::MethodID::TYPE_INSTANCE>( 171 env, 172 clazz, 173 "testMethodWithParamAndReturn", 174 "(I)Ljava/lang/String;", 175 &cached_method_id); 176 auto _ret = env->CallObjectMethod(obj.obj(), call_context.method_id(), as_jint(iParam)); 177 jstring _ret2 = static_cast<jstring>(_ret); 178 return jni_zero::ScopedJavaLocalRef<jstring>(env, _ret2); 179} 180 181static jni_zero::ScopedJavaLocalRef<jstring> Java_SampleBidirectionalNonProxy_testStaticMethodWithNoParam( 182 JNIEnv* env) { 183 static std::atomic<jmethodID> cached_method_id(nullptr); 184 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 185 CHECK_CLAZZ(env, clazz, clazz, nullptr); 186 jni_zero::internal::JniJavaCallContext<true> call_context; 187 call_context.Init<jni_zero::MethodID::TYPE_STATIC>( 188 env, 189 clazz, 190 "testStaticMethodWithNoParam", 191 "()Ljava/lang/String;", 192 &cached_method_id); 193 auto _ret = env->CallStaticObjectMethod(clazz, call_context.method_id()); 194 jstring _ret2 = static_cast<jstring>(_ret); 195 return jni_zero::ScopedJavaLocalRef<jstring>(env, _ret2); 196} 197 198static jint Java_SampleBidirectionalNonProxy_testStaticMethodWithParam( 199 JNIEnv* env, 200 JniIntWrapper iParam) { 201 static std::atomic<jmethodID> cached_method_id(nullptr); 202 jclass clazz = org_jni_1zero_SampleBidirectionalNonProxy_clazz(env); 203 CHECK_CLAZZ(env, clazz, clazz, 0); 204 jni_zero::internal::JniJavaCallContext<true> call_context; 205 call_context.Init<jni_zero::MethodID::TYPE_STATIC>( 206 env, 207 clazz, 208 "testStaticMethodWithParam", 209 "(I)I", 210 &cached_method_id); 211 auto _ret = env->CallStaticIntMethod(clazz, call_context.method_id(), as_jint(iParam)); 212 return _ret; 213} 214 215 216 217#endif // org_jni_1zero_SampleBidirectionalNonProxy_JNI 218