Home | History | Annotate | Download | only in jni_generator
      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.
     20 namespace {
     21 const char kTestJniClassPath[] = "org/chromium/TestJni";
     22 // Leaking this jclass as we cannot use LazyInstance from some threads.
     23 base::subtle::AtomicWord g_TestJni_clazz __attribute__((unused)) = 0;
     24 #define TestJni_clazz(env) base::android::LazyGetClass(env, kTestJniClassPath, &g_TestJni_clazz)
     25 
     26 }  // namespace
     27 
     28 // Step 2: method stubs.
     29 
     30 static jint Init(JNIEnv* env, const base::android::JavaParamRef<jobject>&
     31     jcaller);
     32 
     33 JNI_GENERATOR_EXPORT jint Java_org_chromium_TestJni_nativeInit(JNIEnv* env,
     34     jobject jcaller) {
     35   return Init(env, base::android::JavaParamRef<jobject>(env, jcaller));
     36 }
     37 
     38 JNI_GENERATOR_EXPORT void Java_org_chromium_TestJni_nativeDestroy(JNIEnv* env,
     39     jobject jcaller,
     40     jint nativeChromeBrowserProvider) {
     41   ChromeBrowserProvider* native =
     42       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
     43   CHECK_NATIVE_PTR(env, jcaller, native, "Destroy");
     44   return native->Destroy(env, base::android::JavaParamRef<jobject>(env,
     45       jcaller));
     46 }
     47 
     48 JNI_GENERATOR_EXPORT jlong Java_org_chromium_TestJni_nativeAddBookmark(JNIEnv*
     49     env, jobject jcaller,
     50     jint nativeChromeBrowserProvider,
     51     jstring url,
     52     jstring title,
     53     jboolean isFolder,
     54     jlong parentId) {
     55   ChromeBrowserProvider* native =
     56       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
     57   CHECK_NATIVE_PTR(env, jcaller, native, "AddBookmark", 0);
     58   return native->AddBookmark(env, base::android::JavaParamRef<jobject>(env,
     59       jcaller), base::android::JavaParamRef<jstring>(env, url),
     60       base::android::JavaParamRef<jstring>(env, title), isFolder, parentId);
     61 }
     62 
     63 static base::android::ScopedJavaLocalRef<jstring> GetDomainAndRegistry(JNIEnv*
     64     env, const base::android::JavaParamRef<jclass>& jcaller,
     65     const base::android::JavaParamRef<jstring>& url);
     66 
     67 JNI_GENERATOR_EXPORT jstring
     68     Java_org_chromium_TestJni_nativeGetDomainAndRegistry(JNIEnv* env, jclass
     69     jcaller,
     70     jstring url) {
     71   return GetDomainAndRegistry(env, base::android::JavaParamRef<jclass>(env,
     72       jcaller), base::android::JavaParamRef<jstring>(env, url)).Release();
     73 }
     74 
     75 static void CreateHistoricalTabFromState(JNIEnv* env, const
     76     base::android::JavaParamRef<jclass>& jcaller,
     77     const base::android::JavaParamRef<jbyteArray>& state,
     78     jint tab_index);
     79 
     80 JNI_GENERATOR_EXPORT void
     81     Java_org_chromium_TestJni_nativeCreateHistoricalTabFromState(JNIEnv* env,
     82     jclass jcaller,
     83     jbyteArray state,
     84     jint tab_index) {
     85   return CreateHistoricalTabFromState(env,
     86       base::android::JavaParamRef<jclass>(env, jcaller),
     87       base::android::JavaParamRef<jbyteArray>(env, state), tab_index);
     88 }
     89 
     90 static base::android::ScopedJavaLocalRef<jbyteArray> GetStateAsByteArray(JNIEnv*
     91     env, const base::android::JavaParamRef<jobject>& jcaller,
     92     const base::android::JavaParamRef<jobject>& view);
     93 
     94 JNI_GENERATOR_EXPORT jbyteArray
     95     Java_org_chromium_TestJni_nativeGetStateAsByteArray(JNIEnv* env, jobject
     96     jcaller,
     97     jobject view) {
     98   return GetStateAsByteArray(env, base::android::JavaParamRef<jobject>(env,
     99       jcaller), base::android::JavaParamRef<jobject>(env, view)).Release();
    100 }
    101 
    102 static base::android::ScopedJavaLocalRef<jobjectArray>
    103     GetAutofillProfileGUIDs(JNIEnv* env, const
    104     base::android::JavaParamRef<jclass>& jcaller);
    105 
    106 JNI_GENERATOR_EXPORT jobjectArray
    107     Java_org_chromium_TestJni_nativeGetAutofillProfileGUIDs(JNIEnv* env, jclass
    108     jcaller) {
    109   return GetAutofillProfileGUIDs(env, base::android::JavaParamRef<jclass>(env,
    110       jcaller)).Release();
    111 }
    112 
    113 static void SetRecognitionResults(JNIEnv* env, const
    114     base::android::JavaParamRef<jobject>& jcaller,
    115     jint sessionId,
    116     const base::android::JavaParamRef<jobjectArray>& results);
    117 
    118 JNI_GENERATOR_EXPORT void
    119     Java_org_chromium_TestJni_nativeSetRecognitionResults(JNIEnv* env, jobject
    120     jcaller,
    121     jint sessionId,
    122     jobjectArray results) {
    123   return SetRecognitionResults(env, base::android::JavaParamRef<jobject>(env,
    124       jcaller), sessionId, base::android::JavaParamRef<jobjectArray>(env,
    125       results));
    126 }
    127 
    128 JNI_GENERATOR_EXPORT jlong
    129     Java_org_chromium_TestJni_nativeAddBookmarkFromAPI(JNIEnv* env, jobject
    130     jcaller,
    131     jint nativeChromeBrowserProvider,
    132     jstring url,
    133     jobject created,
    134     jobject isBookmark,
    135     jobject date,
    136     jbyteArray favicon,
    137     jstring title,
    138     jobject visits) {
    139   ChromeBrowserProvider* native =
    140       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
    141   CHECK_NATIVE_PTR(env, jcaller, native, "AddBookmarkFromAPI", 0);
    142   return native->AddBookmarkFromAPI(env,
    143       base::android::JavaParamRef<jobject>(env, jcaller),
    144       base::android::JavaParamRef<jstring>(env, url),
    145       base::android::JavaParamRef<jobject>(env, created),
    146       base::android::JavaParamRef<jobject>(env, isBookmark),
    147       base::android::JavaParamRef<jobject>(env, date),
    148       base::android::JavaParamRef<jbyteArray>(env, favicon),
    149       base::android::JavaParamRef<jstring>(env, title),
    150       base::android::JavaParamRef<jobject>(env, visits));
    151 }
    152 
    153 static jint FindAll(JNIEnv* env, const base::android::JavaParamRef<jobject>&
    154     jcaller,
    155     const base::android::JavaParamRef<jstring>& find);
    156 
    157 JNI_GENERATOR_EXPORT jint Java_org_chromium_TestJni_nativeFindAll(JNIEnv* env,
    158     jobject jcaller,
    159     jstring find) {
    160   return FindAll(env, base::android::JavaParamRef<jobject>(env, jcaller),
    161       base::android::JavaParamRef<jstring>(env, find));
    162 }
    163 
    164 static base::android::ScopedJavaLocalRef<jobject> GetInnerClass(JNIEnv* env,
    165     const base::android::JavaParamRef<jclass>& jcaller);
    166 
    167 JNI_GENERATOR_EXPORT jobject
    168     Java_org_chromium_TestJni_nativeGetInnerClass(JNIEnv* env, jclass jcaller) {
    169   return GetInnerClass(env, base::android::JavaParamRef<jclass>(env,
    170       jcaller)).Release();
    171 }
    172 
    173 JNI_GENERATOR_EXPORT jobject Java_org_chromium_TestJni_nativeQueryBitmap(JNIEnv*
    174     env, jobject jcaller,
    175     jint nativeChromeBrowserProvider,
    176     jobjectArray projection,
    177     jstring selection,
    178     jobjectArray selectionArgs,
    179     jstring sortOrder) {
    180   ChromeBrowserProvider* native =
    181       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
    182   CHECK_NATIVE_PTR(env, jcaller, native, "QueryBitmap", NULL);
    183   return native->QueryBitmap(env, base::android::JavaParamRef<jobject>(env,
    184       jcaller), base::android::JavaParamRef<jobjectArray>(env, projection),
    185       base::android::JavaParamRef<jstring>(env, selection),
    186       base::android::JavaParamRef<jobjectArray>(env, selectionArgs),
    187       base::android::JavaParamRef<jstring>(env, sortOrder)).Release();
    188 }
    189 
    190 JNI_GENERATOR_EXPORT void Java_org_chromium_TestJni_nativeGotOrientation(JNIEnv*
    191     env, jobject jcaller,
    192     jint nativeDataFetcherImplAndroid,
    193     jdouble alpha,
    194     jdouble beta,
    195     jdouble gamma) {
    196   DataFetcherImplAndroid* native =
    197       reinterpret_cast<DataFetcherImplAndroid*>(nativeDataFetcherImplAndroid);
    198   CHECK_NATIVE_PTR(env, jcaller, native, "GotOrientation");
    199   return native->GotOrientation(env, base::android::JavaParamRef<jobject>(env,
    200       jcaller), alpha, beta, gamma);
    201 }
    202 
    203 static base::android::ScopedJavaLocalRef<jthrowable>
    204     MessWithJavaException(JNIEnv* env, const
    205     base::android::JavaParamRef<jclass>& jcaller,
    206     const base::android::JavaParamRef<jthrowable>& e);
    207 
    208 JNI_GENERATOR_EXPORT jthrowable
    209     Java_org_chromium_TestJni_nativeMessWithJavaException(JNIEnv* env, jclass
    210     jcaller,
    211     jthrowable e) {
    212   return MessWithJavaException(env, base::android::JavaParamRef<jclass>(env,
    213       jcaller), base::android::JavaParamRef<jthrowable>(env, e)).Release();
    214 }
    215 
    216 // Step 3: RegisterNatives.
    217 
    218 static const JNINativeMethod kMethodsTestJni[] = {
    219     { "nativeInit",
    220 "("
    221 ")"
    222 "I", reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeInit) },
    223     { "nativeDestroy",
    224 "("
    225 "I"
    226 ")"
    227 "V", reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeDestroy) },
    228     { "nativeAddBookmark",
    229 "("
    230 "I"
    231 "Ljava/lang/String;"
    232 "Ljava/lang/String;"
    233 "Z"
    234 "J"
    235 ")"
    236 "J", reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeAddBookmark) },
    237     { "nativeGetDomainAndRegistry",
    238 "("
    239 "Ljava/lang/String;"
    240 ")"
    241 "Ljava/lang/String;",
    242     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeGetDomainAndRegistry)
    243     },
    244     { "nativeCreateHistoricalTabFromState",
    245 "("
    246 "[B"
    247 "I"
    248 ")"
    249 "V",
    250     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeCreateHistoricalTabFromState)
    251     },
    252     { "nativeGetStateAsByteArray",
    253 "("
    254 "Landroid/view/View;"
    255 ")"
    256 "[B",
    257     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeGetStateAsByteArray)
    258     },
    259     { "nativeGetAutofillProfileGUIDs",
    260 "("
    261 ")"
    262 "[Ljava/lang/String;",
    263     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeGetAutofillProfileGUIDs)
    264     },
    265     { "nativeSetRecognitionResults",
    266 "("
    267 "I"
    268 "[Ljava/lang/String;"
    269 ")"
    270 "V",
    271     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeSetRecognitionResults)
    272     },
    273     { "nativeAddBookmarkFromAPI",
    274 "("
    275 "I"
    276 "Ljava/lang/String;"
    277 "Ljava/lang/Long;"
    278 "Ljava/lang/Boolean;"
    279 "Ljava/lang/Long;"
    280 "[B"
    281 "Ljava/lang/String;"
    282 "Ljava/lang/Integer;"
    283 ")"
    284 "J", reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeAddBookmarkFromAPI)
    285     },
    286     { "nativeFindAll",
    287 "("
    288 "Ljava/lang/String;"
    289 ")"
    290 "I", reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeFindAll) },
    291     { "nativeGetInnerClass",
    292 "("
    293 ")"
    294 "Lorg/chromium/example/jni_generator/SampleForTests$OnFrameAvailableListener;",
    295     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeGetInnerClass) },
    296     { "nativeQueryBitmap",
    297 "("
    298 "I"
    299 "[Ljava/lang/String;"
    300 "Ljava/lang/String;"
    301 "[Ljava/lang/String;"
    302 "Ljava/lang/String;"
    303 ")"
    304 "Landroid/graphics/Bitmap;",
    305     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeQueryBitmap) },
    306     { "nativeGotOrientation",
    307 "("
    308 "I"
    309 "D"
    310 "D"
    311 "D"
    312 ")"
    313 "V", reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeGotOrientation) },
    314     { "nativeMessWithJavaException",
    315 "("
    316 "Ljava/lang/Throwable;"
    317 ")"
    318 "Ljava/lang/Throwable;",
    319     reinterpret_cast<void*>(Java_org_chromium_TestJni_nativeMessWithJavaException)
    320     },
    321 };
    322 
    323 static bool RegisterNativesImpl(JNIEnv* env) {
    324   if (jni_generator::ShouldSkipJniRegistration(false))
    325     return true;
    326 
    327   const int kMethodsTestJniSize = arraysize(kMethodsTestJni);
    328 
    329   if (env->RegisterNatives(TestJni_clazz(env),
    330                            kMethodsTestJni,
    331                            kMethodsTestJniSize) < 0) {
    332     jni_generator::HandleRegistrationError(
    333         env, TestJni_clazz(env), __FILE__);
    334     return false;
    335   }
    336 
    337   return true;
    338 }
    339 
    340 #endif  // org_chromium_TestJni_JNI
    341