• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
20namespace {
21const char kTestClassPath[] = "org/chromium/example/jni_generator/Test";
22// Leaking this jclass as we cannot use LazyInstance from some threads.
23jclass g_Test_clazz = NULL;
24#define Test_clazz(env) g_Test_clazz
25
26}  // namespace
27
28// Step 2: method stubs.
29static jint Method(JNIEnv* env, jobject jcaller,
30    jlong nativeTest,
31    jint arg1) {
32  Test* native = reinterpret_cast<Test*>(nativeTest);
33  CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0);
34  return native->Method(env, jcaller, arg1);
35}
36
37// Step 3: RegisterNatives.
38
39static const JNINativeMethod kMethodsTest[] = {
40    { "nativeMethod",
41"("
42"J"
43"I"
44")"
45"I", reinterpret_cast<void*>(Method) },
46};
47
48static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) {
49  g_Test_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz));
50
51  const int kMethodsTestSize = arraysize(kMethodsTest);
52
53  if (env->RegisterNatives(Test_clazz(env),
54                           kMethodsTest,
55                           kMethodsTestSize) < 0) {
56    jni_generator::HandleRegistrationError(
57        env, Test_clazz(env), __FILE__);
58    return false;
59  }
60
61  return true;
62}
63
64extern "C" JNIEXPORT bool JNICALL
65Java_org_chromium_example_jni_generator_Test_nativeInitNativeClass(JNIEnv* env,
66    jclass clazz) {
67  return RegisterNativesImpl(env, clazz);
68}
69
70#endif  // org_chromium_example_jni_generator_Test_JNI
71