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
31static jint Init(JNIEnv* env, jobject jcaller);
32
33static jint Init(JNIEnv* env, jobject jcaller);
34
35// Step 2: method stubs.
36
37// Step 3: RegisterNatives.
38
39static const JNINativeMethod kMethodsMyOtherInnerClass[] = {
40    { "nativeInit",
41"("
42")"
43"I", reinterpret_cast<void*>(Init) },
44};
45
46static const JNINativeMethod kMethodsMyInnerClass[] = {
47    { "nativeInit",
48"("
49")"
50"I", reinterpret_cast<void*>(Init) },
51};
52
53static bool RegisterNativesImpl(JNIEnv* env) {
54  g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
55      base::android::GetClass(env, kTestJniClassPath).obj()));
56
57  const int kMethodsMyOtherInnerClassSize =
58      arraysize(kMethodsMyOtherInnerClass);
59
60  if (env->RegisterNatives(MyOtherInnerClass_clazz(env),
61                           kMethodsMyOtherInnerClass,
62                           kMethodsMyOtherInnerClassSize) < 0) {
63    jni_generator::HandleRegistrationError(
64        env, MyOtherInnerClass_clazz(env), __FILE__);
65    return false;
66  }
67
68  const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass);
69
70  if (env->RegisterNatives(MyInnerClass_clazz(env),
71                           kMethodsMyInnerClass,
72                           kMethodsMyInnerClassSize) < 0) {
73    jni_generator::HandleRegistrationError(
74        env, MyInnerClass_clazz(env), __FILE__);
75    return false;
76  }
77
78  return true;
79}
80
81#endif  // org_chromium_TestJni_JNI
82