Home | History | Annotate | Download | only in jni_generator
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // This file is autogenerated by
      6 //     base/android/jni_generator/jni_generator.py
      7 // For
      8 //     org/chromium/example/jni_generator/SampleForTests
      9 
     10 #ifndef org_chromium_example_jni_generator_SampleForTests_JNI
     11 #define org_chromium_example_jni_generator_SampleForTests_JNI
     12 
     13 #include <jni.h>
     14 
     15 #include "base/android/jni_generator/jni_generator_helper.h"
     16 
     17 #include "base/android/jni_int_wrapper.h"
     18 
     19 // Step 1: forward declarations.
     20 namespace {
     21 const char kSampleForTestsClassPath[] =
     22     "org/chromium/example/jni_generator/SampleForTests";
     23 // Leaking this jclass as we cannot use LazyInstance from some threads.
     24 base::subtle::AtomicWord g_SampleForTests_clazz __attribute__((unused)) = 0;
     25 #define SampleForTests_clazz(env) base::android::LazyGetClass(env, kSampleForTestsClassPath, &g_SampleForTests_clazz)
     26 
     27 }  // namespace
     28 
     29 // Step 2: method stubs.
     30 extern "C" __attribute__((visibility("default")))
     31 jint
     32     Java_org_chromium_example_jni_1generator_SampleForTests_nativeStaticMethod(JNIEnv*
     33     env,
     34     jobject jcaller,
     35     jlong nativeTest,
     36     jint arg1) {
     37   Test* native = reinterpret_cast<Test*>(nativeTest);
     38   CHECK_NATIVE_PTR(env, jcaller, native, "StaticMethod", 0);
     39   return native->StaticMethod(env, JavaParamRef<jobject>(env, jcaller), arg1);
     40 }
     41 
     42 extern "C" __attribute__((visibility("default")))
     43 jint
     44     Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethod(JNIEnv*
     45     env,
     46     jobject jcaller,
     47     jlong nativeTest,
     48     jint arg1) {
     49   Test* native = reinterpret_cast<Test*>(nativeTest);
     50   CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0);
     51   return native->Method(env, JavaParamRef<jobject>(env, jcaller), arg1);
     52 }
     53 
     54 static jint Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller);
     55 
     56 extern "C" __attribute__((visibility("default")))
     57 jint
     58     Java_org_chromium_example_jni_1generator_SampleForTests_00024MyInnerClass_nativeInit(JNIEnv*
     59     env, jobject jcaller) {
     60   return Init(env, JavaParamRef<jobject>(env, jcaller));
     61 }
     62 
     63 static jint Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller);
     64 
     65 extern "C" __attribute__((visibility("default")))
     66 jint
     67     Java_org_chromium_example_jni_1generator_SampleForTests_00024MyOtherInnerClass_nativeInit(JNIEnv*
     68     env, jobject jcaller) {
     69   return Init(env, JavaParamRef<jobject>(env, jcaller));
     70 }
     71 
     72 static base::subtle::AtomicWord g_SampleForTests_testMethodWithParam = 0;
     73 static void Java_SampleForTests_testMethodWithParam(JNIEnv* env, jobject obj,
     74     JniIntWrapper iParam) {
     75   /* Must call RegisterNativesImpl()  */
     76   CHECK_CLAZZ(env, obj,
     77       SampleForTests_clazz(env));
     78   jmethodID method_id =
     79       base::android::MethodID::LazyGet<
     80       base::android::MethodID::TYPE_INSTANCE>(
     81       env, SampleForTests_clazz(env),
     82       "testMethodWithParam",
     83 
     84 "("
     85 "I"
     86 ")"
     87 "V",
     88       &g_SampleForTests_testMethodWithParam);
     89 
     90      env->CallVoidMethod(obj,
     91           method_id, as_jint(iParam));
     92   jni_generator::CheckException(env);
     93 
     94 }
     95 
     96 static base::subtle::AtomicWord g_SampleForTests_testMethodWithParamAndReturn =
     97     0;
     98 static ScopedJavaLocalRef<jstring>
     99     Java_SampleForTests_testMethodWithParamAndReturn(JNIEnv* env, jobject obj,
    100     JniIntWrapper iParam) {
    101   /* Must call RegisterNativesImpl()  */
    102   CHECK_CLAZZ(env, obj,
    103       SampleForTests_clazz(env), NULL);
    104   jmethodID method_id =
    105       base::android::MethodID::LazyGet<
    106       base::android::MethodID::TYPE_INSTANCE>(
    107       env, SampleForTests_clazz(env),
    108       "testMethodWithParamAndReturn",
    109 
    110 "("
    111 "I"
    112 ")"
    113 "Ljava/lang/String;",
    114       &g_SampleForTests_testMethodWithParamAndReturn);
    115 
    116   jstring ret =
    117       static_cast<jstring>(env->CallObjectMethod(obj,
    118           method_id, as_jint(iParam)));
    119   jni_generator::CheckException(env);
    120   return ScopedJavaLocalRef<jstring>(env, ret);
    121 }
    122 
    123 static base::subtle::AtomicWord g_SampleForTests_testStaticMethodWithParam = 0;
    124 static jint Java_SampleForTests_testStaticMethodWithParam(JNIEnv* env,
    125     JniIntWrapper iParam) {
    126   /* Must call RegisterNativesImpl()  */
    127   CHECK_CLAZZ(env, SampleForTests_clazz(env),
    128       SampleForTests_clazz(env), 0);
    129   jmethodID method_id =
    130       base::android::MethodID::LazyGet<
    131       base::android::MethodID::TYPE_STATIC>(
    132       env, SampleForTests_clazz(env),
    133       "testStaticMethodWithParam",
    134 
    135 "("
    136 "I"
    137 ")"
    138 "I",
    139       &g_SampleForTests_testStaticMethodWithParam);
    140 
    141   jint ret =
    142       env->CallStaticIntMethod(SampleForTests_clazz(env),
    143           method_id, as_jint(iParam));
    144   jni_generator::CheckException(env);
    145   return ret;
    146 }
    147 
    148 static base::subtle::AtomicWord g_SampleForTests_testMethodWithNoParam = 0;
    149 static jdouble Java_SampleForTests_testMethodWithNoParam(JNIEnv* env) {
    150   /* Must call RegisterNativesImpl()  */
    151   CHECK_CLAZZ(env, SampleForTests_clazz(env),
    152       SampleForTests_clazz(env), 0);
    153   jmethodID method_id =
    154       base::android::MethodID::LazyGet<
    155       base::android::MethodID::TYPE_STATIC>(
    156       env, SampleForTests_clazz(env),
    157       "testMethodWithNoParam",
    158 
    159 "("
    160 ")"
    161 "D",
    162       &g_SampleForTests_testMethodWithNoParam);
    163 
    164   jdouble ret =
    165       env->CallStaticDoubleMethod(SampleForTests_clazz(env),
    166           method_id);
    167   jni_generator::CheckException(env);
    168   return ret;
    169 }
    170 
    171 static base::subtle::AtomicWord g_SampleForTests_testStaticMethodWithNoParam =
    172     0;
    173 static ScopedJavaLocalRef<jstring>
    174     Java_SampleForTests_testStaticMethodWithNoParam(JNIEnv* env) {
    175   /* Must call RegisterNativesImpl()  */
    176   CHECK_CLAZZ(env, SampleForTests_clazz(env),
    177       SampleForTests_clazz(env), NULL);
    178   jmethodID method_id =
    179       base::android::MethodID::LazyGet<
    180       base::android::MethodID::TYPE_STATIC>(
    181       env, SampleForTests_clazz(env),
    182       "testStaticMethodWithNoParam",
    183 
    184 "("
    185 ")"
    186 "Ljava/lang/String;",
    187       &g_SampleForTests_testStaticMethodWithNoParam);
    188 
    189   jstring ret =
    190 static_cast<jstring>(env->CallStaticObjectMethod(SampleForTests_clazz(env),
    191           method_id));
    192   jni_generator::CheckException(env);
    193   return ScopedJavaLocalRef<jstring>(env, ret);
    194 }
    195 
    196 // Step 3: RegisterNatives.
    197 
    198 static bool RegisterNativesImpl(JNIEnv* env) {
    199 
    200   return true;
    201 }
    202 
    203 #endif  // org_chromium_example_jni_generator_SampleForTests_JNI
    204