• 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/TestJni
9
10#ifndef org_chromium_TestJni_JNI
11#define org_chromium_TestJni_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 kMyOtherInnerClassClassPath[] =
22    "org/chromium/TestJni$MyOtherInnerClass";
23const char kTestJniClassPath[] = "org/chromium/TestJni";
24const char kMyInnerClassClassPath[] = "org/chromium/TestJni$MyInnerClass";
25// Leaking this jclass as we cannot use LazyInstance from some threads.
26jclass g_TestJni_clazz = NULL;
27#define TestJni_clazz(env) g_TestJni_clazz
28
29}  // namespace
30
31// Step 2: method stubs.
32
33static jint Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller);
34
35static jint Java_org_chromium_TestJni_00024MyInnerClass_nativeInit(JNIEnv* env,
36    jobject jcaller) {
37  return Init(env, JavaParamRef<jobject>(env, jcaller));
38}
39
40static jint Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller);
41
42static jint Java_org_chromium_TestJni_00024MyOtherInnerClass_nativeInit(JNIEnv*
43    env, jobject jcaller) {
44  return Init(env, JavaParamRef<jobject>(env, jcaller));
45}
46
47// Step 3: RegisterNatives.
48
49static const JNINativeMethod kMethodsMyOtherInnerClass[] = {
50    { "nativeInit",
51"("
52")"
53"I",
54    reinterpret_cast<void*>(Java_org_chromium_TestJni_00024MyOtherInnerClass_nativeInit)
55    },
56};
57
58static const JNINativeMethod kMethodsMyInnerClass[] = {
59    { "nativeInit",
60"("
61")"
62"I",
63    reinterpret_cast<void*>(Java_org_chromium_TestJni_00024MyInnerClass_nativeInit)
64    },
65};
66
67static bool RegisterNativesImpl(JNIEnv* env) {
68
69  g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
70      base::android::GetClass(env, kTestJniClassPath).obj()));
71
72  const int kMethodsMyOtherInnerClassSize =
73      arraysize(kMethodsMyOtherInnerClass);
74
75  if (env->RegisterNatives(MyOtherInnerClass_clazz(env),
76                           kMethodsMyOtherInnerClass,
77                           kMethodsMyOtherInnerClassSize) < 0) {
78    jni_generator::HandleRegistrationError(
79        env, MyOtherInnerClass_clazz(env), __FILE__);
80    return false;
81  }
82
83  const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass);
84
85  if (env->RegisterNatives(MyInnerClass_clazz(env),
86                           kMethodsMyInnerClass,
87                           kMethodsMyInnerClassSize) < 0) {
88    jni_generator::HandleRegistrationError(
89        env, MyInnerClass_clazz(env), __FILE__);
90    return false;
91  }
92
93  return true;
94}
95
96#endif  // org_chromium_TestJni_JNI
97