| 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 Method(JNIEnv* env, jobject jcaller, | |
| 33 jlong nativeTest, | |
| 34 jint arg1) { | |
| 35 Test* native = reinterpret_cast<Test*>(nativeTest); | |
| 36 CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0); | |
| 37 return native->Method(env, jcaller, arg1); | |
| 38 } | |
| 39 | |
| 40 namespace { | |
| 41 | |
| 42 static void testMethodWithParam(JNIEnv* env, jobject obj, JniIntWrapper iParam) | |
| 43 { | |
| 44 env->CallVoidMethod(obj, | |
| 45 g_Test_testMethodWithParam, as_jint(iParam)); | |
| 46 | |
| 47 } | |
| 48 | |
| 49 static jint testStaticMethodWithParam(JNIEnv* env, JniIntWrapper iParam) { | |
| 50 jint ret = env->CallStaticIntMethod(Test_clazz(env), | |
| 51 g_Test_testStaticMethodWithParam, as_jint(iParam)); | |
| 52 return ret; | |
| 53 } | |
| 54 | |
| 55 static jdouble testMethodWithNoParam(JNIEnv* env) { | |
| 56 jdouble ret = env->CallStaticDoubleMethod(Test_clazz(env), | |
| 57 g_Test_testMethodWithNoParam); | |
| 58 return ret; | |
| 59 } | |
| 60 | |
| 61 static base::android::ScopedJavaLocalRef<jstring> | |
| 62 testStaticMethodWithNoParam(JNIEnv* env) { | |
| 63 jstring ret = | |
| 64 static_cast<jstring>(env->CallStaticObjectMethod(Test_clazz(env), | |
| 65 g_Test_testStaticMethodWithNoParam)); | |
| 66 return base::android::ScopedJavaLocalRef<jstring>(env, ret); | |
| 67 } | |
| 68 } // namespace | |
| 69 | |
| 70 // Step 3: RegisterNatives. | |
| 71 | |
| 72 static const JNINativeMethod kMethodsTest[] = { | |
| 73 { "nativeMethod", | |
| 74 "(" | |
| 75 "J" | |
| 76 "I" | |
| 77 ")" | |
| 78 "I", reinterpret_cast<void*>(Method) }, | |
| 79 }; | |
| 80 | |
| 81 static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { | |
| 82 | |
| 83 g_Test_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz)); | |
| 84 | |
| 85 const int kMethodsTestSize = arraysize(kMethodsTest); | |
| 86 | |
| 87 if (env->RegisterNatives(Test_clazz(env), | |
| 88 kMethodsTest, | |
| 89 kMethodsTestSize) < 0) { | |
| 90 jni_generator::HandleRegistrationError( | |
| 91 env, Test_clazz(env), __FILE__); | |
| 92 return false; | |
| 93 } | |
| 94 | |
| 95 g_Test_testMethodWithParam = env->GetMethodID( | |
| 96 Test_clazz(env), | |
| 97 "testMethodWithParam", | |
| 98 "(" | |
| 99 "I" | |
| 100 ")" | |
| 101 "V"); | |
| 102 if (g_Test_testMethodWithParam == NULL) { | |
| 103 return false; | |
| 104 } | |
| 105 | |
| 106 g_Test_testStaticMethodWithParam = env->GetStaticMethodID( | |
| 107 Test_clazz(env), | |
| 108 "testStaticMethodWithParam", | |
| 109 "(" | |
| 110 "I" | |
| 111 ")" | |
| 112 "I"); | |
| 113 if (g_Test_testStaticMethodWithParam == NULL) { | |
| 114 return false; | |
| 115 } | |
| 116 | |
| 117 g_Test_testMethodWithNoParam = env->GetStaticMethodID( | |
| 118 Test_clazz(env), | |
| 119 "testMethodWithNoParam", | |
| 120 "(" | |
| 121 ")" | |
| 122 "D"); | |
| 123 if (g_Test_testMethodWithNoParam == NULL) { | |
| 124 return false; | |
| 125 } | |
| 126 | |
| 127 g_Test_testStaticMethodWithNoParam = env->GetStaticMethodID( | |
| 128 Test_clazz(env), | |
| 129 "testStaticMethodWithNoParam", | |
| 130 "(" | |
| 131 ")" | |
| 132 "Ljava/lang/String;"); | |
| 133 if (g_Test_testStaticMethodWithNoParam == NULL) { | |
| 134 return false; | |
| 135 } | |
| 136 | |
| 137 return true; | |
| 138 } | |
| 139 | |
| 140 extern "C" JNIEXPORT bool JNICALL | |
| 141 Java_org_chromium_example_jni_generator_Test_nativeInitNativeClass(JNIEnv* env, | |
| 142 jclass clazz) { | |
| 143 return RegisterNativesImpl(env, clazz); | |
| 144 } | |
| 145 | |
| 146 #endif // org_chromium_example_jni_generator_Test_JNI | |
| OLD | NEW |