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/Example 9 10 #ifndef org_chromium_example_jni_generator_Example_JNI 11 #define org_chromium_example_jni_generator_Example_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 kExampleClassPath[] = "com/test/jni_generator/Example"; 22 // Leaking this jclass as we cannot use LazyInstance from some threads. 23 jclass g_Example_clazz = NULL; 24 #define Example_clazz(env) g_Example_clazz 25 26 } // namespace 27 28 static void Test(JNIEnv* env, jclass jcaller, 29 jobject t); 30 31 static void Test2(JNIEnv* env, jclass jcaller, 32 jobject t); 33 34 static void Test3(JNIEnv* env, jclass jcaller, 35 jobject t); 36 37 static void Test4(JNIEnv* env, jclass jcaller, 38 jobject t); 39 40 // Step 2: method stubs. 41 42 // Step 3: RegisterNatives. 43 44 static const JNINativeMethod kMethodsExample[] = { 45 { "nativeTest", 46 "(" 47 "Lorg/test2/Test;" 48 ")" 49 "V", reinterpret_cast<void*>(Test) }, 50 { "nativeTest2", 51 "(" 52 "Lorg/chromium/example3/PrefixFoo;" 53 ")" 54 "V", reinterpret_cast<void*>(Test2) }, 55 { "nativeTest3", 56 "(" 57 "Lorg/test3/Test;" 58 ")" 59 "V", reinterpret_cast<void*>(Test3) }, 60 { "nativeTest4", 61 "(" 62 "Lorg/test3/TestBar$Inner;" 63 ")" 64 "V", reinterpret_cast<void*>(Test4) }, 65 }; 66 67 static bool RegisterNativesImpl(JNIEnv* env) { 68 g_Example_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( 69 base::android::GetClass(env, kExampleClassPath).obj())); 70 71 const int kMethodsExampleSize = arraysize(kMethodsExample); 72 73 if (env->RegisterNatives(Example_clazz(env), 74 kMethodsExample, 75 kMethodsExampleSize) < 0) { 76 jni_generator::HandleRegistrationError( 77 env, Example_clazz(env), __FILE__); 78 return false; 79 } 80 81 return true; 82 } 83 84 #endif // org_chromium_example_jni_generator_Example_JNI 85