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. 20namespace { 21const char kSampleForTestsClassPath[] = 22 "org/chromium/example/jni_generator/SampleForTests"; 23// Leaking this jclass as we cannot use LazyInstance from some threads. 24base::subtle::AtomicWord g_SampleForTests_clazz = 0; 25#define SampleForTests_clazz(env) base::android::LazyGetClass(env, kSampleForTestsClassPath, &g_SampleForTests_clazz) 26 27} // namespace 28 29extern "C" { 30 31static jint Init(JNIEnv* env, jobject jcaller); 32 33__attribute__((visibility("default"))) 34jint 35 Java_org_chromium_example_jni_1generator_SampleForTests_00024MyInnerClass_nativeInit(JNIEnv* 36 env, jobject jcaller) { 37 return Init(env, jcaller); 38} 39 40static jint Init(JNIEnv* env, jobject jcaller); 41 42__attribute__((visibility("default"))) 43jint 44 Java_org_chromium_example_jni_1generator_SampleForTests_00024MyOtherInnerClass_nativeInit(JNIEnv* 45 env, jobject jcaller) { 46 return Init(env, jcaller); 47} 48 49}; // extern "C" 50 51// Step 2: method stubs. 52 53extern "C" { 54__attribute__((visibility("default"))) 55jint 56 Java_org_chromium_example_jni_1generator_SampleForTests_nativeStaticMethod(JNIEnv* 57 env, 58 jobject jcaller, 59 jlong nativeTest, 60 jint arg1) { 61 Test* native = reinterpret_cast<Test*>(nativeTest); 62 CHECK_NATIVE_PTR(env, jcaller, native, "StaticMethod", 0); 63 return native->StaticMethod(env, jcaller, arg1); 64} 65 66__attribute__((visibility("default"))) 67jint 68 Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethod(JNIEnv* 69 env, 70 jobject jcaller, 71 jlong nativeTest, 72 jint arg1) { 73 Test* native = reinterpret_cast<Test*>(nativeTest); 74 CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0); 75 return native->Method(env, jcaller, arg1); 76} 77 78static base::subtle::AtomicWord g_SampleForTests_testMethodWithParam = 0; 79static void Java_SampleForTests_testMethodWithParam(JNIEnv* env, jobject obj, 80 JniIntWrapper iParam) { 81 /* Must call RegisterNativesImpl() */ 82 CHECK_CLAZZ(env, obj, 83 SampleForTests_clazz(env)); 84 jmethodID method_id = 85 base::android::MethodID::LazyGet< 86 base::android::MethodID::TYPE_INSTANCE>( 87 env, SampleForTests_clazz(env), 88 "testMethodWithParam", 89 90"(" 91"I" 92")" 93"V", 94 &g_SampleForTests_testMethodWithParam); 95 96 env->CallVoidMethod(obj, 97 method_id, as_jint(iParam)); 98 jni_generator::CheckException(env); 99 100} 101 102static base::subtle::AtomicWord g_SampleForTests_testMethodWithParamAndReturn = 103 0; 104static base::android::ScopedJavaLocalRef<jstring> 105 Java_SampleForTests_testMethodWithParamAndReturn(JNIEnv* env, jobject obj, 106 JniIntWrapper iParam) { 107 /* Must call RegisterNativesImpl() */ 108 CHECK_CLAZZ(env, obj, 109 SampleForTests_clazz(env), NULL); 110 jmethodID method_id = 111 base::android::MethodID::LazyGet< 112 base::android::MethodID::TYPE_INSTANCE>( 113 env, SampleForTests_clazz(env), 114 "testMethodWithParamAndReturn", 115 116"(" 117"I" 118")" 119"Ljava/lang/String;", 120 &g_SampleForTests_testMethodWithParamAndReturn); 121 122 jstring ret = 123 static_cast<jstring>(env->CallObjectMethod(obj, 124 method_id, as_jint(iParam))); 125 jni_generator::CheckException(env); 126 return base::android::ScopedJavaLocalRef<jstring>(env, ret); 127} 128 129static base::subtle::AtomicWord g_SampleForTests_testStaticMethodWithParam = 0; 130static jint Java_SampleForTests_testStaticMethodWithParam(JNIEnv* env, 131 JniIntWrapper iParam) { 132 /* Must call RegisterNativesImpl() */ 133 CHECK_CLAZZ(env, SampleForTests_clazz(env), 134 SampleForTests_clazz(env), 0); 135 jmethodID method_id = 136 base::android::MethodID::LazyGet< 137 base::android::MethodID::TYPE_STATIC>( 138 env, SampleForTests_clazz(env), 139 "testStaticMethodWithParam", 140 141"(" 142"I" 143")" 144"I", 145 &g_SampleForTests_testStaticMethodWithParam); 146 147 jint ret = 148 env->CallStaticIntMethod(SampleForTests_clazz(env), 149 method_id, as_jint(iParam)); 150 jni_generator::CheckException(env); 151 return ret; 152} 153 154static base::subtle::AtomicWord g_SampleForTests_testMethodWithNoParam = 0; 155static jdouble Java_SampleForTests_testMethodWithNoParam(JNIEnv* env) { 156 /* Must call RegisterNativesImpl() */ 157 CHECK_CLAZZ(env, SampleForTests_clazz(env), 158 SampleForTests_clazz(env), 0); 159 jmethodID method_id = 160 base::android::MethodID::LazyGet< 161 base::android::MethodID::TYPE_STATIC>( 162 env, SampleForTests_clazz(env), 163 "testMethodWithNoParam", 164 165"(" 166")" 167"D", 168 &g_SampleForTests_testMethodWithNoParam); 169 170 jdouble ret = 171 env->CallStaticDoubleMethod(SampleForTests_clazz(env), 172 method_id); 173 jni_generator::CheckException(env); 174 return ret; 175} 176 177static base::subtle::AtomicWord g_SampleForTests_testStaticMethodWithNoParam = 178 0; 179static base::android::ScopedJavaLocalRef<jstring> 180 Java_SampleForTests_testStaticMethodWithNoParam(JNIEnv* env) { 181 /* Must call RegisterNativesImpl() */ 182 CHECK_CLAZZ(env, SampleForTests_clazz(env), 183 SampleForTests_clazz(env), NULL); 184 jmethodID method_id = 185 base::android::MethodID::LazyGet< 186 base::android::MethodID::TYPE_STATIC>( 187 env, SampleForTests_clazz(env), 188 "testStaticMethodWithNoParam", 189 190"(" 191")" 192"Ljava/lang/String;", 193 &g_SampleForTests_testStaticMethodWithNoParam); 194 195 jstring ret = 196static_cast<jstring>(env->CallStaticObjectMethod(SampleForTests_clazz(env), 197 method_id)); 198 jni_generator::CheckException(env); 199 return base::android::ScopedJavaLocalRef<jstring>(env, ret); 200} 201}; // extern "C" 202 203// Step 3: RegisterNatives. 204 205static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { 206 base::subtle::Release_Store(&g_SampleForTests_clazz, 207 static_cast<base::subtle::AtomicWord>(env->NewWeakGlobalRef(clazz)); 208 209 return true; 210} 211 212extern "C" JNIEXPORT bool JNICALL 213Java_org_chromium_example_jni_1generator_SampleForTests_nativeInitNativeClass(JNIEnv* 214 env, jclass clazz) { 215 return RegisterNativesImpl(env, clazz); 216} 217 218#endif // org_chromium_example_jni_generator_SampleForTests_JNI 219