1// Copyright 2014 The Chromium Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5 6// This file is autogenerated by 7// base/android/jni_generator/jni_generator.py 8// For 9// org/chromium/foo/Foo 10 11#ifndef org_chromium_foo_Foo_JNI 12#define org_chromium_foo_Foo_JNI 13 14#include <jni.h> 15 16#include "base/android/jni_generator/jni_generator_helper.h" 17 18 19// Step 1: Forward declarations. 20 21JNI_REGISTRATION_EXPORT extern const char kClassPath_org_chromium_foo_Foo[]; 22const char kClassPath_org_chromium_foo_Foo[] = "org/chromium/foo/Foo"; 23// Leaking this jclass as we cannot use LazyInstance from some threads. 24JNI_REGISTRATION_EXPORT std::atomic<jclass> g_org_chromium_foo_Foo_clazz(nullptr); 25#ifndef org_chromium_foo_Foo_clazz_defined 26#define org_chromium_foo_Foo_clazz_defined 27inline jclass org_chromium_foo_Foo_clazz(JNIEnv* env) { 28 return base::android::LazyGetClass(env, kClassPath_org_chromium_foo_Foo, 29 &g_org_chromium_foo_Foo_clazz); 30} 31#endif 32 33 34// Step 2: Constants (optional). 35 36 37// Step 3: Method stubs. 38static void JNI_Foo_ShouldBindCaller(JNIEnv* env, const base::android::JavaParamRef<jobject>& 39 caller); 40 41JNI_GENERATOR_EXPORT void Java_org_chromium_foo_Foo_nativeShouldBindCaller( 42 JNIEnv* env, 43 jclass jcaller, 44 jobject caller) { 45 return JNI_Foo_ShouldBindCaller(env, base::android::JavaParamRef<jobject>(env, caller)); 46} 47 48static void JNI_Foo_ShouldBindCaller(JNIEnv* env, const base::android::JavaParamRef<jobject>& 49 caller, 50 jint a); 51 52JNI_GENERATOR_EXPORT void Java_org_chromium_foo_Foo_nativeShouldBindCaller( 53 JNIEnv* env, 54 jclass jcaller, 55 jobject caller, 56 jint a) { 57 return JNI_Foo_ShouldBindCaller(env, base::android::JavaParamRef<jobject>(env, caller), a); 58} 59 60JNI_GENERATOR_EXPORT void Java_org_chromium_foo_Foo_nativeFoo( 61 JNIEnv* env, 62 jclass jcaller, 63 jlong nativeNativeObject, 64 jobject caller) { 65 NativeObject* native = reinterpret_cast<NativeObject*>(nativeNativeObject); 66 CHECK_NATIVE_PTR(env, jcaller, native, "Foo"); 67 return native->Foo(env, base::android::JavaParamRef<jobject>(env, caller)); 68} 69 70JNI_GENERATOR_EXPORT void Java_org_chromium_foo_Foo_nativeFoo( 71 JNIEnv* env, 72 jclass jcaller, 73 jlong nativeNativeObject, 74 jobject caller, 75 jint a) { 76 NativeObject* native = reinterpret_cast<NativeObject*>(nativeNativeObject); 77 CHECK_NATIVE_PTR(env, jcaller, native, "Foo"); 78 return native->Foo(env, base::android::JavaParamRef<jobject>(env, caller), a); 79} 80 81JNI_GENERATOR_EXPORT void Java_org_chromium_foo_Foo_nativeCallNativeMethod( 82 JNIEnv* env, 83 jobject jcaller, 84 jlong nativePtr) { 85 Ptr* native = reinterpret_cast<Ptr*>(nativePtr); 86 CHECK_NATIVE_PTR(env, jcaller, native, "CallNativeMethod"); 87 return native->CallNativeMethod(env, base::android::JavaParamRef<jobject>(env, jcaller)); 88} 89 90JNI_GENERATOR_EXPORT void Java_org_chromium_foo_Foo_nativeCallWithQualifiedObject( 91 JNIEnv* env, 92 jobject jcaller, 93 jlong nativePtr) { 94 Foo::Bar* native = reinterpret_cast<Foo::Bar*>(nativePtr); 95 CHECK_NATIVE_PTR(env, jcaller, native, "CallWithQualifiedObject"); 96 return native->CallWithQualifiedObject(env, base::android::JavaParamRef<jobject>(env, jcaller)); 97} 98 99 100#endif // org_chromium_foo_Foo_JNI 101