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