• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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