| OLD | NEW |
| (Empty) |
| 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/Test | |
| 9 | |
| 10 #ifndef org_chromium_example_jni_generator_Test_JNI | |
| 11 #define org_chromium_example_jni_generator_Test_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 kTestClassPath[] = "org/chromium/example/jni_generator/Test"; | |
| 22 // Leaking this jclass as we cannot use LazyInstance from some threads. | |
| 23 jclass g_Test_clazz = NULL; | |
| 24 #define Test_clazz(env) g_Test_clazz | |
| 25 jmethodID g_Test_testMethodWithParam = NULL; | |
| 26 jmethodID g_Test_testStaticMethodWithParam = NULL; | |
| 27 jmethodID g_Test_testMethodWithNoParam = NULL; | |
| 28 jmethodID g_Test_testStaticMethodWithNoParam = NULL; | |
| 29 } // namespace | |
| 30 | |
| 31 // Step 2: method stubs. | |
| 32 static jint Java_org_chromium_example_jni_1generator_Test_nativeMethod(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, "Method", 0); | |
| 39 return native->Method(env, JavaParamRef<jobject>(env, jcaller), arg1); | |
| 40 } | |
| 41 | |
| 42 namespace { | |
| 43 | |
| 44 static void testMethodWithParam(JNIEnv* env, jobject obj, JniIntWrapper iParam) | |
| 45 { | |
| 46 env->CallVoidMethod(obj, | |
| 47 g_Test_testMethodWithParam, as_jint(iParam)); | |
| 48 | |
| 49 } | |
| 50 | |
| 51 static jint testStaticMethodWithParam(JNIEnv* env, JniIntWrapper iParam) { | |
| 52 jint ret = env->CallStaticIntMethod(Test_clazz(env), | |
| 53 g_Test_testStaticMethodWithParam, as_jint(iParam)); | |
| 54 return ret; | |
| 55 } | |
| 56 | |
| 57 static jdouble testMethodWithNoParam(JNIEnv* env) { | |
| 58 jdouble ret = env->CallStaticDoubleMethod(Test_clazz(env), | |
| 59 g_Test_testMethodWithNoParam); | |
| 60 return ret; | |
| 61 } | |
| 62 | |
| 63 static ScopedJavaLocalRef<jstring> testStaticMethodWithNoParam(JNIEnv* env) { | |
| 64 jstring ret = | |
| 65 static_cast<jstring>(env->CallStaticObjectMethod(Test_clazz(env), | |
| 66 g_Test_testStaticMethodWithNoParam)); | |
| 67 return ScopedJavaLocalRef<jstring>(env, ret); | |
| 68 } | |
| 69 } // namespace | |
| 70 | |
| 71 // Step 3: RegisterNatives. | |
| 72 | |
| 73 static const JNINativeMethod kMethodsTest[] = { | |
| 74 { "nativeMethod", | |
| 75 "(" | |
| 76 "J" | |
| 77 "I" | |
| 78 ")" | |
| 79 "I", | |
| 80 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_Test_native
Method) | |
| 81 }, | |
| 82 }; | |
| 83 | |
| 84 static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { | |
| 85 | |
| 86 g_Test_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz)); | |
| 87 | |
| 88 const int kMethodsTestSize = arraysize(kMethodsTest); | |
| 89 | |
| 90 if (env->RegisterNatives(Test_clazz(env), | |
| 91 kMethodsTest, | |
| 92 kMethodsTestSize) < 0) { | |
| 93 jni_generator::HandleRegistrationError( | |
| 94 env, Test_clazz(env), __FILE__); | |
| 95 return false; | |
| 96 } | |
| 97 | |
| 98 g_Test_testMethodWithParam = env->GetMethodID( | |
| 99 Test_clazz(env), | |
| 100 "testMethodWithParam", | |
| 101 "(" | |
| 102 "I" | |
| 103 ")" | |
| 104 "V"); | |
| 105 if (g_Test_testMethodWithParam == NULL) { | |
| 106 return false; | |
| 107 } | |
| 108 | |
| 109 g_Test_testStaticMethodWithParam = env->GetStaticMethodID( | |
| 110 Test_clazz(env), | |
| 111 "testStaticMethodWithParam", | |
| 112 "(" | |
| 113 "I" | |
| 114 ")" | |
| 115 "I"); | |
| 116 if (g_Test_testStaticMethodWithParam == NULL) { | |
| 117 return false; | |
| 118 } | |
| 119 | |
| 120 g_Test_testMethodWithNoParam = env->GetStaticMethodID( | |
| 121 Test_clazz(env), | |
| 122 "testMethodWithNoParam", | |
| 123 "(" | |
| 124 ")" | |
| 125 "D"); | |
| 126 if (g_Test_testMethodWithNoParam == NULL) { | |
| 127 return false; | |
| 128 } | |
| 129 | |
| 130 g_Test_testStaticMethodWithNoParam = env->GetStaticMethodID( | |
| 131 Test_clazz(env), | |
| 132 "testStaticMethodWithNoParam", | |
| 133 "(" | |
| 134 ")" | |
| 135 "Ljava/lang/String;"); | |
| 136 if (g_Test_testStaticMethodWithNoParam == NULL) { | |
| 137 return false; | |
| 138 } | |
| 139 | |
| 140 return true; | |
| 141 } | |
| 142 | |
| 143 extern "C" JNIEXPORT bool JNICALL | |
| 144 Java_org_chromium_example_jni_generator_Test_nativeInitNativeClass(JNIEnv* env, | |
| 145 jclass clazz) { | |
| 146 return RegisterNativesImpl(env, clazz); | |
| 147 } | |
| 148 | |
| 149 #endif // org_chromium_example_jni_generator_Test_JNI | |
| OLD | NEW |