1// Copyright 2014 The Chromium Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5 6// This file is autogenerated by 7// third_party/jni_zero/jni_generator.py 8// For 9// org/jni_zero/samples/SampleForTests 10 11#ifndef org_jni_zero_samples_SampleForTests_JNI 12#define org_jni_zero_samples_SampleForTests_JNI 13 14#include <jni.h> 15 16#include "third_party/jni_zero/jni_export.h" 17#include "third_party/jni_zero/jni_zero_helper.h" 18 19 20// Step 1: Forward declarations. 21 22JNI_ZERO_COMPONENT_BUILD_EXPORT extern const char kClassPath_org_jni_1zero_samples_SampleForTests[]; 23const char kClassPath_org_jni_1zero_samples_SampleForTests[] = 24 "org/jni_zero/samples/SampleForTests"; 25 26JNI_ZERO_COMPONENT_BUILD_EXPORT extern const char 27 kClassPath_org_jni_1zero_samples_SampleForTests_00024InnerStructA[]; 28const char kClassPath_org_jni_1zero_samples_SampleForTests_00024InnerStructA[] = 29 "org/jni_zero/samples/SampleForTests$InnerStructA"; 30 31JNI_ZERO_COMPONENT_BUILD_EXPORT extern const char 32 kClassPath_org_jni_1zero_samples_SampleForTests_00024InnerStructB[]; 33const char kClassPath_org_jni_1zero_samples_SampleForTests_00024InnerStructB[] = 34 "org/jni_zero/samples/SampleForTests$InnerStructB"; 35// Leaking this jclass as we cannot use LazyInstance from some threads. 36JNI_ZERO_COMPONENT_BUILD_EXPORT std::atomic<jclass> 37 g_org_jni_1zero_samples_SampleForTests_clazz(nullptr); 38#ifndef org_jni_1zero_samples_SampleForTests_clazz_defined 39#define org_jni_1zero_samples_SampleForTests_clazz_defined 40inline jclass org_jni_1zero_samples_SampleForTests_clazz(JNIEnv* env) { 41 return base::android::LazyGetClass(env, kClassPath_org_jni_1zero_samples_SampleForTests, 42 &g_org_jni_1zero_samples_SampleForTests_clazz); 43} 44#endif 45// Leaking this jclass as we cannot use LazyInstance from some threads. 46JNI_ZERO_COMPONENT_BUILD_EXPORT std::atomic<jclass> 47 g_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(nullptr); 48#ifndef org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz_defined 49#define org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz_defined 50inline jclass org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(JNIEnv* env) { 51 return base::android::LazyGetClass(env, 52 kClassPath_org_jni_1zero_samples_SampleForTests_00024InnerStructA, 53 &g_org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz); 54} 55#endif 56// Leaking this jclass as we cannot use LazyInstance from some threads. 57JNI_ZERO_COMPONENT_BUILD_EXPORT std::atomic<jclass> 58 g_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(nullptr); 59#ifndef org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz_defined 60#define org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz_defined 61inline jclass org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(JNIEnv* env) { 62 return base::android::LazyGetClass(env, 63 kClassPath_org_jni_1zero_samples_SampleForTests_00024InnerStructB, 64 &g_org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz); 65} 66#endif 67 68 69// Step 2: Constants (optional). 70 71 72// Step 3: Method stubs. 73namespace base { 74namespace android { 75 76JNI_BOUNDARY_EXPORT void 77 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1addStructB( 78 JNIEnv* env, 79 jclass jcaller, 80 jlong nativeCPPClass, 81 jobject caller, 82 jobject b) { 83 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 84 CHECK_NATIVE_PTR(env, jcaller, native, "AddStructB"); 85 return native->AddStructB(env, base::android::JavaParamRef<jobject>(env, caller), 86 base::android::JavaParamRef<jobject>(env, b)); 87} 88 89JNI_BOUNDARY_EXPORT void 90 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1destroy( 91 JNIEnv* env, 92 jclass jcaller, 93 jlong nativeCPPClass, 94 jobject caller) { 95 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 96 CHECK_NATIVE_PTR(env, jcaller, native, "Destroy"); 97 return native->Destroy(env, base::android::JavaParamRef<jobject>(env, caller)); 98} 99 100static base::android::ScopedJavaLocalRef<jclass> JNI_SampleForTests_GetClass(JNIEnv* env, const 101 base::android::JavaParamRef<jclass>& arg0); 102 103JNI_BOUNDARY_EXPORT jclass 104 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1getClass( 105 JNIEnv* env, 106 jclass jcaller, 107 jclass arg0) { 108 return JNI_SampleForTests_GetClass(env, base::android::JavaParamRef<jclass>(env, arg0)).Release(); 109} 110 111static jdouble JNI_SampleForTests_GetDoubleFunction(JNIEnv* env, const 112 base::android::JavaParamRef<jobject>& caller); 113 114JNI_BOUNDARY_EXPORT jdouble 115 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1getDoubleFunction( 116 JNIEnv* env, 117 jclass jcaller, 118 jobject caller) { 119 return JNI_SampleForTests_GetDoubleFunction(env, base::android::JavaParamRef<jobject>(env, 120 caller)); 121} 122 123static jfloat JNI_SampleForTests_GetFloatFunction(JNIEnv* env); 124 125JNI_BOUNDARY_EXPORT jfloat 126 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1getFloatFunction( 127 JNIEnv* env, 128 jclass jcaller) { 129 return JNI_SampleForTests_GetFloatFunction(env); 130} 131 132static base::android::ScopedJavaLocalRef<jobject> JNI_SampleForTests_GetNonPODDatatype(JNIEnv* env, 133 const base::android::JavaParamRef<jobject>& caller); 134 135JNI_BOUNDARY_EXPORT jobject 136 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1getNonPODDatatype( 137 JNIEnv* env, 138 jclass jcaller, 139 jobject caller) { 140 return JNI_SampleForTests_GetNonPODDatatype(env, base::android::JavaParamRef<jobject>(env, 141 caller)).Release(); 142} 143 144static base::android::ScopedJavaLocalRef<jthrowable> JNI_SampleForTests_GetThrowable(JNIEnv* env, 145 const base::android::JavaParamRef<jthrowable>& arg0); 146 147JNI_BOUNDARY_EXPORT jthrowable 148 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1getThrowable( 149 JNIEnv* env, 150 jclass jcaller, 151 jthrowable arg0) { 152 return JNI_SampleForTests_GetThrowable(env, base::android::JavaParamRef<jthrowable>(env, 153 arg0)).Release(); 154} 155 156static jlong JNI_SampleForTests_Init(JNIEnv* env, const base::android::JavaParamRef<jobject>& 157 caller, 158 const base::android::JavaParamRef<jstring>& param); 159 160JNI_BOUNDARY_EXPORT jlong 161 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1init( 162 JNIEnv* env, 163 jclass jcaller, 164 jobject caller, 165 jstring param) { 166 return JNI_SampleForTests_Init(env, base::android::JavaParamRef<jobject>(env, caller), 167 base::android::JavaParamRef<jstring>(env, param)); 168} 169 170JNI_BOUNDARY_EXPORT void 171 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1iterateAndDoSomethingWithStructB( 172 JNIEnv* env, 173 jclass jcaller, 174 jlong nativeCPPClass, 175 jobject caller) { 176 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 177 CHECK_NATIVE_PTR(env, jcaller, native, "IterateAndDoSomethingWithStructB"); 178 return native->IterateAndDoSomethingWithStructB(env, base::android::JavaParamRef<jobject>(env, 179 caller)); 180} 181 182JNI_BOUNDARY_EXPORT jint 183 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1method( 184 JNIEnv* env, 185 jclass jcaller, 186 jlong nativeCPPClass, 187 jobject caller) { 188 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 189 CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0); 190 return native->Method(env, base::android::JavaParamRef<jobject>(env, caller)); 191} 192 193JNI_BOUNDARY_EXPORT jdouble 194 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1methodOtherP0( 195 JNIEnv* env, 196 jclass jcaller, 197 jlong nativePtr, 198 jobject caller) { 199 CPPClass::InnerClass* native = reinterpret_cast<CPPClass::InnerClass*>(nativePtr); 200 CHECK_NATIVE_PTR(env, jcaller, native, "MethodOtherP0", 0); 201 return native->MethodOtherP0(env, base::android::JavaParamRef<jobject>(env, caller)); 202} 203 204JNI_BOUNDARY_EXPORT jstring 205 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1returnAString( 206 JNIEnv* env, 207 jclass jcaller, 208 jlong nativeCPPClass, 209 jobject caller) { 210 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 211 CHECK_NATIVE_PTR(env, jcaller, native, "ReturnAString", nullptr); 212 return native->ReturnAString(env, base::android::JavaParamRef<jobject>(env, caller)).Release(); 213} 214 215static void JNI_SampleForTests_SetNonPODDatatype(JNIEnv* env, const 216 base::android::JavaParamRef<jobject>& caller, 217 const base::android::JavaParamRef<jobject>& rect); 218 219JNI_BOUNDARY_EXPORT void 220 Java_org_jni_1zero_GEN_1JNI_org_1jni_11zero_1samples_1SampleForTests_1setNonPODDatatype( 221 JNIEnv* env, 222 jclass jcaller, 223 jobject caller, 224 jobject rect) { 225 return JNI_SampleForTests_SetNonPODDatatype(env, base::android::JavaParamRef<jobject>(env, 226 caller), base::android::JavaParamRef<jobject>(env, rect)); 227} 228 229 230static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_Constructor2(nullptr); 231static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_Constructor(JNIEnv* env, 232 JniIntWrapper foo, 233 JniIntWrapper bar) { 234 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 235 CHECK_CLAZZ(env, clazz, 236 org_jni_1zero_samples_SampleForTests_clazz(env), nullptr); 237 238 jni_generator::JniJavaCallContextChecked call_context; 239 call_context.Init< 240 base::android::MethodID::TYPE_INSTANCE>( 241 env, 242 clazz, 243 "<init>", 244 "(II)V", 245 &g_org_jni_1zero_samples_SampleForTests_Constructor2); 246 247 jobject ret = 248 env->NewObject(clazz, 249 call_context.base.method_id, as_jint(foo), as_jint(bar)); 250 return base::android::ScopedJavaLocalRef<jobject>(env, ret); 251} 252 253static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_addStructA1(nullptr); 254static void Java_SampleForTests_addStructA(JNIEnv* env, const base::android::JavaRef<jobject>& obj, 255 const base::android::JavaRef<jobject>& a) { 256 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 257 CHECK_CLAZZ(env, obj.obj(), 258 org_jni_1zero_samples_SampleForTests_clazz(env)); 259 260 jni_generator::JniJavaCallContextChecked call_context; 261 call_context.Init< 262 base::android::MethodID::TYPE_INSTANCE>( 263 env, 264 clazz, 265 "addStructA", 266 "(Lorg/jni_zero/samples/SampleForTests$InnerStructA;)V", 267 &g_org_jni_1zero_samples_SampleForTests_addStructA1); 268 269 env->CallVoidMethod(obj.obj(), 270 call_context.base.method_id, a.obj()); 271} 272 273static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_getClass1(nullptr); 274static base::android::ScopedJavaLocalRef<jclass> Java_SampleForTests_getClass(JNIEnv* env, const 275 base::android::JavaRef<jobject>& obj, const base::android::JavaRef<jclass>& arg0) { 276 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 277 CHECK_CLAZZ(env, obj.obj(), 278 org_jni_1zero_samples_SampleForTests_clazz(env), nullptr); 279 280 jni_generator::JniJavaCallContextChecked call_context; 281 call_context.Init< 282 base::android::MethodID::TYPE_INSTANCE>( 283 env, 284 clazz, 285 "getClass", 286 "(Ljava/lang/Class;)Ljava/lang/Class;", 287 &g_org_jni_1zero_samples_SampleForTests_getClass1); 288 289 jclass ret = 290 static_cast<jclass>(env->CallObjectMethod(obj.obj(), 291 call_context.base.method_id, arg0.obj())); 292 return base::android::ScopedJavaLocalRef<jclass>(env, ret); 293} 294 295static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_getInnerEnum0(nullptr); 296static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_getInnerEnum(JNIEnv* env) { 297 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 298 CHECK_CLAZZ(env, clazz, 299 org_jni_1zero_samples_SampleForTests_clazz(env), nullptr); 300 301 jni_generator::JniJavaCallContextChecked call_context; 302 call_context.Init< 303 base::android::MethodID::TYPE_STATIC>( 304 env, 305 clazz, 306 "getInnerEnum", 307 "()Lorg/jni_zero/samples/SampleForTests$InnerEnum;", 308 &g_org_jni_1zero_samples_SampleForTests_getInnerEnum0); 309 310 jobject ret = 311 env->CallStaticObjectMethod(clazz, 312 call_context.base.method_id); 313 return base::android::ScopedJavaLocalRef<jobject>(env, ret); 314} 315 316static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_getInnerEnum1(nullptr); 317static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_getInnerEnum(JNIEnv* env, 318 JniIntWrapper a) { 319 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 320 CHECK_CLAZZ(env, clazz, 321 org_jni_1zero_samples_SampleForTests_clazz(env), nullptr); 322 323 jni_generator::JniJavaCallContextChecked call_context; 324 call_context.Init< 325 base::android::MethodID::TYPE_STATIC>( 326 env, 327 clazz, 328 "getInnerEnum", 329 "(I)Lorg/jni_zero/samples/SampleForTests$InnerEnum;", 330 &g_org_jni_1zero_samples_SampleForTests_getInnerEnum1); 331 332 jobject ret = 333 env->CallStaticObjectMethod(clazz, 334 call_context.base.method_id, as_jint(a)); 335 return base::android::ScopedJavaLocalRef<jobject>(env, ret); 336} 337 338static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_getInnerInterface0(nullptr); 339static base::android::ScopedJavaLocalRef<jobject> Java_SampleForTests_getInnerInterface(JNIEnv* env) 340 { 341 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 342 CHECK_CLAZZ(env, clazz, 343 org_jni_1zero_samples_SampleForTests_clazz(env), nullptr); 344 345 jni_generator::JniJavaCallContextChecked call_context; 346 call_context.Init< 347 base::android::MethodID::TYPE_STATIC>( 348 env, 349 clazz, 350 "getInnerInterface", 351 "()Lorg/jni_zero/samples/SampleForTests$InnerInterface;", 352 &g_org_jni_1zero_samples_SampleForTests_getInnerInterface0); 353 354 jobject ret = 355 env->CallStaticObjectMethod(clazz, 356 call_context.base.method_id); 357 return base::android::ScopedJavaLocalRef<jobject>(env, ret); 358} 359 360static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_getThrowable1(nullptr); 361static base::android::ScopedJavaLocalRef<jthrowable> Java_SampleForTests_getThrowable(JNIEnv* env, 362 const base::android::JavaRef<jobject>& obj, const base::android::JavaRef<jthrowable>& arg0) { 363 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 364 CHECK_CLAZZ(env, obj.obj(), 365 org_jni_1zero_samples_SampleForTests_clazz(env), nullptr); 366 367 jni_generator::JniJavaCallContextChecked call_context; 368 call_context.Init< 369 base::android::MethodID::TYPE_INSTANCE>( 370 env, 371 clazz, 372 "getThrowable", 373 "(Ljava/lang/Throwable;)Ljava/lang/Throwable;", 374 &g_org_jni_1zero_samples_SampleForTests_getThrowable1); 375 376 jthrowable ret = 377 static_cast<jthrowable>(env->CallObjectMethod(obj.obj(), 378 call_context.base.method_id, arg0.obj())); 379 return base::android::ScopedJavaLocalRef<jthrowable>(env, ret); 380} 381 382static std::atomic<jmethodID> 383 g_org_jni_1zero_samples_SampleForTests_iterateAndDoSomething0(nullptr); 384static void Java_SampleForTests_iterateAndDoSomething(JNIEnv* env, const 385 base::android::JavaRef<jobject>& obj) { 386 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 387 CHECK_CLAZZ(env, obj.obj(), 388 org_jni_1zero_samples_SampleForTests_clazz(env)); 389 390 jni_generator::JniJavaCallContextChecked call_context; 391 call_context.Init< 392 base::android::MethodID::TYPE_INSTANCE>( 393 env, 394 clazz, 395 "iterateAndDoSomething", 396 "()V", 397 &g_org_jni_1zero_samples_SampleForTests_iterateAndDoSomething0); 398 399 env->CallVoidMethod(obj.obj(), 400 call_context.base.method_id); 401} 402 403static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_javaMethod2(nullptr); 404static jint Java_SampleForTests_javaMethod(JNIEnv* env, const base::android::JavaRef<jobject>& obj, 405 JniIntWrapper foo, 406 JniIntWrapper bar) { 407 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 408 CHECK_CLAZZ(env, obj.obj(), 409 org_jni_1zero_samples_SampleForTests_clazz(env), 0); 410 411 jni_generator::JniJavaCallContextChecked call_context; 412 call_context.Init< 413 base::android::MethodID::TYPE_INSTANCE>( 414 env, 415 clazz, 416 "javaMethod", 417 "(II)I", 418 &g_org_jni_1zero_samples_SampleForTests_javaMethod2); 419 420 jint ret = 421 env->CallIntMethod(obj.obj(), 422 call_context.base.method_id, as_jint(foo), as_jint(bar)); 423 return ret; 424} 425 426static std::atomic<jmethodID> 427 g_org_jni_1zero_samples_SampleForTests_javaMethodWithAnnotatedParam4(nullptr); 428static void Java_SampleForTests_javaMethodWithAnnotatedParam(JNIEnv* env, const 429 base::android::JavaRef<jobject>& obj, JniIntWrapper foo, 430 JniIntWrapper bar, 431 JniIntWrapper baz, 432 JniIntWrapper bat) { 433 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 434 CHECK_CLAZZ(env, obj.obj(), 435 org_jni_1zero_samples_SampleForTests_clazz(env)); 436 437 jni_generator::JniJavaCallContextChecked call_context; 438 call_context.Init< 439 base::android::MethodID::TYPE_INSTANCE>( 440 env, 441 clazz, 442 "javaMethodWithAnnotatedParam", 443 "(IIII)V", 444 &g_org_jni_1zero_samples_SampleForTests_javaMethodWithAnnotatedParam4); 445 446 env->CallVoidMethod(obj.obj(), 447 call_context.base.method_id, as_jint(foo), as_jint(bar), as_jint(baz), as_jint(bat)); 448} 449 450static std::atomic<jmethodID> 451 g_org_jni_1zero_samples_SampleForTests_methodThatThrowsException0(nullptr); 452static void Java_SampleForTests_methodThatThrowsException(JNIEnv* env, const 453 base::android::JavaRef<jobject>& obj) { 454 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 455 CHECK_CLAZZ(env, obj.obj(), 456 org_jni_1zero_samples_SampleForTests_clazz(env)); 457 458 jni_generator::JniJavaCallContextUnchecked call_context; 459 call_context.Init< 460 base::android::MethodID::TYPE_INSTANCE>( 461 env, 462 clazz, 463 "methodThatThrowsException", 464 "()V", 465 &g_org_jni_1zero_samples_SampleForTests_methodThatThrowsException0); 466 467 env->CallVoidMethod(obj.obj(), 468 call_context.method_id); 469} 470 471static std::atomic<jmethodID> 472 g_org_jni_1zero_samples_SampleForTests_methodWithGenericParams2(nullptr); 473static void Java_SampleForTests_methodWithGenericParams(JNIEnv* env, const 474 base::android::JavaRef<jobject>& obj, const base::android::JavaRef<jobject>& foo, 475 const base::android::JavaRef<jobject>& bar) { 476 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 477 CHECK_CLAZZ(env, obj.obj(), 478 org_jni_1zero_samples_SampleForTests_clazz(env)); 479 480 jni_generator::JniJavaCallContextChecked call_context; 481 call_context.Init< 482 base::android::MethodID::TYPE_INSTANCE>( 483 env, 484 clazz, 485 "methodWithGenericParams", 486 "(Ljava/util/Map;Ljava/util/LinkedList;)V", 487 &g_org_jni_1zero_samples_SampleForTests_methodWithGenericParams2); 488 489 env->CallVoidMethod(obj.obj(), 490 call_context.base.method_id, foo.obj(), bar.obj()); 491} 492 493static std::atomic<jmethodID> 494 g_org_jni_1zero_samples_SampleForTests_packagePrivateJavaMethod0(nullptr); 495static void Java_SampleForTests_packagePrivateJavaMethod(JNIEnv* env, const 496 base::android::JavaRef<jobject>& obj) { 497 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 498 CHECK_CLAZZ(env, obj.obj(), 499 org_jni_1zero_samples_SampleForTests_clazz(env)); 500 501 jni_generator::JniJavaCallContextChecked call_context; 502 call_context.Init< 503 base::android::MethodID::TYPE_INSTANCE>( 504 env, 505 clazz, 506 "packagePrivateJavaMethod", 507 "()V", 508 &g_org_jni_1zero_samples_SampleForTests_packagePrivateJavaMethod0); 509 510 env->CallVoidMethod(obj.obj(), 511 call_context.base.method_id); 512} 513 514static std::atomic<jmethodID> g_org_jni_1zero_samples_SampleForTests_staticJavaMethod0(nullptr); 515static jboolean Java_SampleForTests_staticJavaMethod(JNIEnv* env) { 516 jclass clazz = org_jni_1zero_samples_SampleForTests_clazz(env); 517 CHECK_CLAZZ(env, clazz, 518 org_jni_1zero_samples_SampleForTests_clazz(env), false); 519 520 jni_generator::JniJavaCallContextChecked call_context; 521 call_context.Init< 522 base::android::MethodID::TYPE_STATIC>( 523 env, 524 clazz, 525 "staticJavaMethod", 526 "()Z", 527 &g_org_jni_1zero_samples_SampleForTests_staticJavaMethod0); 528 529 jboolean ret = 530 env->CallStaticBooleanMethod(clazz, 531 call_context.base.method_id); 532 return ret; 533} 534 535static std::atomic<jmethodID> 536 g_org_jni_1zero_samples_SampleForTests_00024InnerStructA_create3(nullptr); 537static base::android::ScopedJavaLocalRef<jobject> Java_InnerStructA_create(JNIEnv* env, jlong l, 538 JniIntWrapper i, 539 const base::android::JavaRef<jstring>& s) { 540 jclass clazz = org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(env); 541 CHECK_CLAZZ(env, clazz, 542 org_jni_1zero_samples_SampleForTests_00024InnerStructA_clazz(env), nullptr); 543 544 jni_generator::JniJavaCallContextChecked call_context; 545 call_context.Init< 546 base::android::MethodID::TYPE_STATIC>( 547 env, 548 clazz, 549 "create", 550 "(JILjava/lang/String;)Lorg/jni_zero/samples/SampleForTests$InnerStructA;", 551 &g_org_jni_1zero_samples_SampleForTests_00024InnerStructA_create3); 552 553 jobject ret = 554 env->CallStaticObjectMethod(clazz, 555 call_context.base.method_id, l, as_jint(i), s.obj()); 556 return base::android::ScopedJavaLocalRef<jobject>(env, ret); 557} 558 559static std::atomic<jmethodID> 560 g_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getKey0(nullptr); 561static jlong Java_InnerStructB_getKey(JNIEnv* env, const base::android::JavaRef<jobject>& obj) { 562 jclass clazz = org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env); 563 CHECK_CLAZZ(env, obj.obj(), 564 org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env), 0); 565 566 jni_generator::JniJavaCallContextChecked call_context; 567 call_context.Init< 568 base::android::MethodID::TYPE_INSTANCE>( 569 env, 570 clazz, 571 "getKey", 572 "()J", 573 &g_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getKey0); 574 575 jlong ret = 576 env->CallLongMethod(obj.obj(), 577 call_context.base.method_id); 578 return ret; 579} 580 581static std::atomic<jmethodID> 582 g_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getValue0(nullptr); 583static base::android::ScopedJavaLocalRef<jstring> Java_InnerStructB_getValue(JNIEnv* env, const 584 base::android::JavaRef<jobject>& obj) { 585 jclass clazz = org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env); 586 CHECK_CLAZZ(env, obj.obj(), 587 org_jni_1zero_samples_SampleForTests_00024InnerStructB_clazz(env), nullptr); 588 589 jni_generator::JniJavaCallContextChecked call_context; 590 call_context.Init< 591 base::android::MethodID::TYPE_INSTANCE>( 592 env, 593 clazz, 594 "getValue", 595 "()Ljava/lang/String;", 596 &g_org_jni_1zero_samples_SampleForTests_00024InnerStructB_getValue0); 597 598 jstring ret = 599 static_cast<jstring>(env->CallObjectMethod(obj.obj(), 600 call_context.base.method_id)); 601 return base::android::ScopedJavaLocalRef<jstring>(env, ret); 602} 603 604} // namespace android 605} // namespace base 606 607#endif // org_jni_zero_samples_SampleForTests_JNI 608