sqlite_jni_registration.c revision f6c387128427e121477c1b32ad35cdcaa5101ba3
1/* 2 * Copyright 2007, The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "JNIHelp.h" 18#include "sqlite_jni.h" 19 20/* Methods for class SQLite_Database */ 21extern JNIEXPORT void JNICALL Java_SQLite_Database__1open 22 (JNIEnv *, jobject, jstring, jint); 23extern JNIEXPORT void JNICALL Java_SQLite_Database__1open_1aux_1file 24 (JNIEnv *, jobject, jstring); 25extern JNIEXPORT void JNICALL Java_SQLite_Database__1finalize 26 (JNIEnv *, jobject); 27extern JNIEXPORT void JNICALL Java_SQLite_Database__1close 28 (JNIEnv *, jobject); 29extern JNIEXPORT void JNICALL Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2 30 (JNIEnv *, jobject, jstring, jobject); 31extern JNIEXPORT void JNICALL Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2_3Ljava_lang_String_2 32 (JNIEnv *, jobject, jstring, jobject, jobjectArray); 33extern JNIEXPORT jlong JNICALL Java_SQLite_Database__1last_1insert_1rowid 34 (JNIEnv *, jobject); 35extern JNIEXPORT void JNICALL Java_SQLite_Database__1interrupt 36 (JNIEnv *, jobject); 37extern JNIEXPORT jlong JNICALL Java_SQLite_Database__1changes 38 (JNIEnv *, jobject); 39extern JNIEXPORT void JNICALL Java_SQLite_Database__1busy_1handler 40 (JNIEnv *, jobject, jobject); 41extern JNIEXPORT void JNICALL Java_SQLite_Database__1busy_1timeout 42 (JNIEnv *, jobject, jint); 43extern JNIEXPORT jboolean JNICALL Java_SQLite_Database__1complete 44 (JNIEnv *, jclass, jstring); 45extern JNIEXPORT jstring JNICALL Java_SQLite_Database_version 46 (JNIEnv *, jclass); 47extern JNIEXPORT jstring JNICALL Java_SQLite_Database_dbversion 48 (JNIEnv *, jobject); 49extern JNIEXPORT void JNICALL Java_SQLite_Database__1create_1function 50 (JNIEnv *, jobject, jstring, jint, jobject); 51extern JNIEXPORT void JNICALL Java_SQLite_Database__1create_1aggregate 52 (JNIEnv *, jobject, jstring, jint, jobject); 53extern JNIEXPORT void JNICALL Java_SQLite_Database__1function_1type 54 (JNIEnv *, jobject, jstring, jint); 55extern JNIEXPORT jstring JNICALL Java_SQLite_Database__1errmsg 56 (JNIEnv *, jobject); 57extern JNIEXPORT jstring JNICALL Java_SQLite_Database_error_1string 58 (JNIEnv *, jclass, jint); 59extern JNIEXPORT void JNICALL Java_SQLite_Database__1set_1encoding 60 (JNIEnv *, jobject, jstring); 61extern JNIEXPORT void JNICALL Java_SQLite_Database__1set_1authorizer 62 (JNIEnv *, jobject, jobject); 63extern JNIEXPORT void JNICALL Java_SQLite_Database__1trace 64 (JNIEnv *, jobject, jobject); 65extern JNIEXPORT jboolean JNICALL Java_SQLite_Database_is3 66 (JNIEnv *, jobject); 67extern JNIEXPORT void JNICALL Java_SQLite_Database_vm_1compile 68 (JNIEnv *, jobject, jstring, jobject); 69extern JNIEXPORT void JNICALL Java_SQLite_Database_vm_1compile_1args 70 (JNIEnv *, jobject, jstring, jobject, jobjectArray); 71extern JNIEXPORT void JNICALL Java_SQLite_Database_stmt_1prepare 72 (JNIEnv *, jobject, jstring, jobject); 73extern JNIEXPORT void JNICALL Java_SQLite_Database__1open_1blob 74 (JNIEnv *, jobject, jstring, jstring, jstring, jlong, jboolean, jobject); 75extern JNIEXPORT void JNICALL Java_SQLite_Database__1progress_1handler 76 (JNIEnv *, jobject, jint, jobject); 77extern JNIEXPORT void JNICALL Java_SQLite_Database_internal_1init 78 (JNIEnv *, jclass); 79 80 81/* Methods for class SQLite_Vm */ 82 83extern JNIEXPORT jboolean JNICALL Java_SQLite_Vm_step 84 (JNIEnv *, jobject, jobject); 85extern JNIEXPORT jboolean JNICALL Java_SQLite_Vm_compile 86 (JNIEnv *, jobject); 87extern JNIEXPORT void JNICALL Java_SQLite_Vm_stop 88 (JNIEnv *, jobject); 89extern JNIEXPORT void JNICALL Java_SQLite_Vm_finalize 90 (JNIEnv *, jobject); 91extern JNIEXPORT void JNICALL Java_SQLite_Vm_internal_1init 92 (JNIEnv *, jclass); 93 94/* Methods for class SQLite_FunctionContext */ 95 96extern JNIEXPORT void JNICALL Java_SQLite_FunctionContext_set_1result__Ljava_lang_String_2 97 (JNIEnv *, jobject, jstring); 98extern JNIEXPORT void JNICALL Java_SQLite_FunctionContext_set_1result__I 99 (JNIEnv *, jobject, jint); 100extern JNIEXPORT void JNICALL Java_SQLite_FunctionContext_set_1result__D 101 (JNIEnv *, jobject, jdouble); 102extern JNIEXPORT void JNICALL Java_SQLite_FunctionContext_set_1error 103 (JNIEnv *, jobject, jstring); 104extern JNIEXPORT void JNICALL Java_SQLite_FunctionContext_set_1result___3B 105 (JNIEnv *, jobject, jbyteArray); 106extern JNIEXPORT void JNICALL Java_SQLite_FunctionContext_set_1result_1zeroblob 107 (JNIEnv *, jobject, jint); 108extern JNIEXPORT jint JNICALL Java_SQLite_FunctionContext_count 109 (JNIEnv *, jobject); 110extern JNIEXPORT void JNICALL Java_SQLite_FunctionContext_internal_1init 111 (JNIEnv *, jclass); 112 113/* Methods for class SQLite_Stmt */ 114 115extern JNIEXPORT jboolean JNICALL Java_SQLite_Stmt_prepare 116 (JNIEnv *, jobject); 117extern JNIEXPORT jboolean JNICALL Java_SQLite_Stmt_step 118 (JNIEnv *, jobject); 119extern JNIEXPORT void JNICALL Java_SQLite_Stmt_close 120 (JNIEnv *, jobject); 121extern JNIEXPORT void JNICALL Java_SQLite_Stmt_reset 122 (JNIEnv *, jobject); 123extern JNIEXPORT void JNICALL Java_SQLite_Stmt_clear_1bindings 124 (JNIEnv *, jobject); 125extern JNIEXPORT void JNICALL Java_SQLite_Stmt_bind__II 126 (JNIEnv *, jobject, jint, jint); 127extern JNIEXPORT void JNICALL Java_SQLite_Stmt_bind__IJ 128 (JNIEnv *, jobject, jint, jlong); 129extern JNIEXPORT void JNICALL Java_SQLite_Stmt_bind__ID 130 (JNIEnv *, jobject, jint, jdouble); 131extern JNIEXPORT void JNICALL Java_SQLite_Stmt_bind__I_3B 132 (JNIEnv *, jobject, jint, jbyteArray); 133extern JNIEXPORT void JNICALL Java_SQLite_Stmt_bind__ILjava_lang_String_2 134 (JNIEnv *, jobject, jint, jstring); 135extern JNIEXPORT void JNICALL Java_SQLite_Stmt_bind__I 136 (JNIEnv *, jobject, jint); 137extern JNIEXPORT void JNICALL Java_SQLite_Stmt_bind_1zeroblob 138 (JNIEnv *, jobject, jint, jint); 139extern JNIEXPORT jint JNICALL Java_SQLite_Stmt_bind_1parameter_1count 140 (JNIEnv *, jobject); 141extern JNIEXPORT jstring JNICALL Java_SQLite_Stmt_bind_1parameter_1name 142 (JNIEnv *, jobject, jint); 143extern JNIEXPORT jint JNICALL Java_SQLite_Stmt_bind_1parameter_1index 144 (JNIEnv *, jobject, jstring); 145extern JNIEXPORT jint JNICALL Java_SQLite_Stmt_column_1int 146 (JNIEnv *, jobject, jint); 147extern JNIEXPORT jlong JNICALL Java_SQLite_Stmt_column_1long 148 (JNIEnv *, jobject, jint); 149extern JNIEXPORT jdouble JNICALL Java_SQLite_Stmt_column_1double 150 (JNIEnv *, jobject, jint); 151extern JNIEXPORT jbyteArray JNICALL Java_SQLite_Stmt_column_1bytes 152 (JNIEnv *, jobject, jint); 153extern JNIEXPORT jstring JNICALL Java_SQLite_Stmt_column_1string 154 (JNIEnv *, jobject, jint); 155extern JNIEXPORT jint JNICALL Java_SQLite_Stmt_column_1type 156 (JNIEnv *, jobject, jint); 157extern JNIEXPORT jint JNICALL Java_SQLite_Stmt_column_1count 158 (JNIEnv *, jobject); 159extern JNIEXPORT jstring JNICALL Java_SQLite_Stmt_column_1table_1name 160 (JNIEnv *, jobject, jint); 161extern JNIEXPORT jstring JNICALL Java_SQLite_Stmt_column_1database_1name 162 (JNIEnv *, jobject, jint); 163extern JNIEXPORT jstring JNICALL Java_SQLite_Stmt_column_1decltype 164 (JNIEnv *, jobject, jint); 165extern JNIEXPORT jstring JNICALL Java_SQLite_Stmt_column_1origin_1name 166 (JNIEnv *, jobject, jint); 167extern JNIEXPORT void JNICALL Java_SQLite_Stmt_finalize 168 (JNIEnv *, jobject); 169extern JNIEXPORT void JNICALL Java_SQLite_Stmt_internal_1init 170 (JNIEnv *, jclass); 171 172/* Methods for class SQLite_Blob */ 173 174extern JNIEXPORT void JNICALL Java_SQLite_Blob_close 175 (JNIEnv *, jobject); 176extern JNIEXPORT jint JNICALL Java_SQLite_Blob_write 177 (JNIEnv *, jobject, jbyteArray, jint, jint, jint); 178extern JNIEXPORT jint JNICALL Java_SQLite_Blob_read 179 (JNIEnv *, jobject, jbyteArray, jint, jint, jint); 180extern JNIEXPORT void JNICALL Java_SQLite_Blob_finalize 181 (JNIEnv *, jobject); 182extern JNIEXPORT void JNICALL Java_SQLite_Blob_internal_1init 183 (JNIEnv *, jclass); 184 185/* 186 * JNI registration 187 */ 188static JNINativeMethod sqliteDatabaseMethods[] = { 189 /* name, signature, funcPtr */ 190/* Header for class SQLite_Database */ 191{ "_open", "(Ljava/lang/String;I)V", Java_SQLite_Database__1open}, 192{ "_open_aux_file", "(Ljava/lang/String;)V", Java_SQLite_Database__1open_1aux_1file}, 193{ "_finalize", "()V", Java_SQLite_Database__1finalize}, 194{ "_close", "()V", Java_SQLite_Database__1close}, 195{ "_exec", "(Ljava/lang/String;LSQLite/Callback;)V", Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2}, 196{ "_exec", "(Ljava/lang/String;LSQLite/Callback;[Ljava/lang/String;)V", Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2_3Ljava_lang_String_2}, 197{ "_last_insert_rowid", "()J", Java_SQLite_Database__1last_1insert_1rowid}, 198{ "_interrupt", "()V", Java_SQLite_Database__1interrupt}, 199{ "_changes", "()J", Java_SQLite_Database__1changes}, 200{ "_busy_handler", "(LSQLite/BusyHandler;)V", Java_SQLite_Database__1busy_1handler}, 201{ "_busy_timeout", "(I)V", Java_SQLite_Database__1busy_1timeout}, 202{ "_complete", "(Ljava/lang/String;)Z", Java_SQLite_Database__1complete}, 203{ "version", "()Ljava/lang/String;", Java_SQLite_Database_version}, 204{ "dbversion", "()Ljava/lang/String;", Java_SQLite_Database_dbversion}, 205{ "_create_function", "(Ljava/lang/String;ILSQLite/Function;)V", Java_SQLite_Database__1create_1function}, 206{ "_create_aggregate", "(Ljava/lang/String;ILSQLite/Function;)V", Java_SQLite_Database__1create_1aggregate}, 207{ "_function_type", "(Ljava/lang/String;I)V", Java_SQLite_Database__1function_1type}, 208{ "_errmsg", "()Ljava/lang/String;", Java_SQLite_Database__1errmsg}, 209{ "error_string", "(I)Ljava/lang/String;", Java_SQLite_Database_error_1string}, 210{ "_set_encoding", "(Ljava/lang/String;)V", Java_SQLite_Database__1set_1encoding}, 211{ "_set_authorizer", "(LSQLite/Authorizer;)V", Java_SQLite_Database__1set_1authorizer}, 212{ "_trace", "(LSQLite/Trace;)V", Java_SQLite_Database__1trace}, 213{ "is3", "()Z", Java_SQLite_Database_is3}, 214{ "vm_compile", "(Ljava/lang/String;LSQLite/Vm;)V", Java_SQLite_Database_vm_1compile}, 215{ "vm_compile_args", "(Ljava/lang/String;LSQLite/Vm;[Ljava/lang/String;)V", Java_SQLite_Database_vm_1compile_1args}, 216{ "stmt_prepare", "(Ljava/lang/String;LSQLite/Stmt;)V", Java_SQLite_Database_stmt_1prepare}, 217{ "_open_blob", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JZLSQLite/Blob;)V", Java_SQLite_Database__1open_1blob}, 218{ "_progress_handler", "(ILSQLite/ProgressHandler;)V", Java_SQLite_Database__1progress_1handler}, 219{ "internal_init", "()V", Java_SQLite_Database_internal_1init} 220}; 221 222static JNINativeMethod sqliteVmMethods[] = { 223/* Header for class SQLite_Vm */ 224{ "step", "(LSQLite/Callback;)Z", Java_SQLite_Vm_step}, 225{ "compile", "()Z", Java_SQLite_Vm_compile}, 226{ "stop", "()V", Java_SQLite_Vm_stop}, 227{ "finalize", "()V", Java_SQLite_Vm_finalize}, 228{ "internal_init", "()V", Java_SQLite_Vm_internal_1init} 229}; 230 231static JNINativeMethod sqliteFunctionContextMethods[] = { 232/* Header for class SQLite_FunctionContext */ 233{ "set_result", "(Ljava/lang/String;)V", Java_SQLite_FunctionContext_set_1result__Ljava_lang_String_2}, 234{ "set_result", "(I)V", Java_SQLite_FunctionContext_set_1result__I}, 235{ "set_result", "(D)V", Java_SQLite_FunctionContext_set_1result__D}, 236{ "set_error", "(Ljava/lang/String;)V", Java_SQLite_FunctionContext_set_1error}, 237{ "set_result", "([B)V", Java_SQLite_FunctionContext_set_1result___3B}, 238{ "set_result_zeroblob", "(I)V", Java_SQLite_FunctionContext_set_1result_1zeroblob}, 239{ "count", "()I", Java_SQLite_FunctionContext_count}, 240{ "internal_init", "()V", Java_SQLite_FunctionContext_internal_1init} 241}; 242 243static JNINativeMethod sqliteStmtMethods[] = { 244/* Header for class SQLite_Stmt */ 245{ "prepare", "()Z", Java_SQLite_Stmt_prepare}, 246{ "step", "()Z", JNICALL Java_SQLite_Stmt_step}, 247{ "close", "()V", Java_SQLite_Stmt_close}, 248{ "reset", "()V", Java_SQLite_Stmt_reset}, 249{ "clear_bindings", "()V", Java_SQLite_Stmt_clear_1bindings}, 250{ "bind", "(II)V", Java_SQLite_Stmt_bind__II}, 251{ "bind", "(IJ)V", Java_SQLite_Stmt_bind__IJ}, 252{ "bind", "(ID)V", Java_SQLite_Stmt_bind__ID}, 253{ "bind", "(I[B)V", Java_SQLite_Stmt_bind__I_3B}, 254{ "bind", "(ILjava/lang/String;)V", Java_SQLite_Stmt_bind__ILjava_lang_String_2}, 255{ "bind", "(I)V", Java_SQLite_Stmt_bind__I}, 256{ "bind_zeroblob", "(II)V", Java_SQLite_Stmt_bind_1zeroblob}, 257{ "bind_parameter_count", "()I", Java_SQLite_Stmt_bind_1parameter_1count}, 258{ "bind_parameter_name", "(I)Ljava/lang/String;", Java_SQLite_Stmt_bind_1parameter_1name}, 259{ "bind_parameter_index", "(Ljava/lang/String;)I", Java_SQLite_Stmt_bind_1parameter_1index}, 260{ "column_int", "(I)I", Java_SQLite_Stmt_column_1int}, 261{ "column_long", "(I)J", Java_SQLite_Stmt_column_1long}, 262{ "column_double", "(I)D", Java_SQLite_Stmt_column_1double}, 263{ "column_bytes", "(I)[B", Java_SQLite_Stmt_column_1bytes}, 264{ "column_string", "(I)Ljava/lang/String;", Java_SQLite_Stmt_column_1string}, 265{ "column_type", "(I)I", Java_SQLite_Stmt_column_1type}, 266{ "column_count", "()I", Java_SQLite_Stmt_column_1count}, 267{ "column_table_name", "(I)Ljava/lang/String;", Java_SQLite_Stmt_column_1table_1name}, 268{ "column_database_name", "(I)Ljava/lang/String;", Java_SQLite_Stmt_column_1database_1name}, 269{ "column_decltype", "(I)Ljava/lang/String;", Java_SQLite_Stmt_column_1decltype}, 270{ "column_origin_name", "(I)Ljava/lang/String;", Java_SQLite_Stmt_column_1origin_1name}, 271{ "finalize", "()V", Java_SQLite_Stmt_finalize}, 272{ "internal_init", "()V", Java_SQLite_Stmt_internal_1init} 273}; 274 275static JNINativeMethod sqliteBlobMethods[] = { 276/* Header for class SQLite_Blob */ 277 278{ "close", "()V", Java_SQLite_Blob_close}, 279{ "write", "([BIII)I", Java_SQLite_Blob_write}, 280{ "read", "([BIII)I", Java_SQLite_Blob_read}, 281{ "finalize", "()V", Java_SQLite_Blob_finalize}, 282{ "internal_init", "()V", Java_SQLite_Blob_internal_1init} 283}; 284 285int register_SQLite_Database(JNIEnv* env) { 286 return jniRegisterNativeMethods(env, "SQLite/Database", 287 sqliteDatabaseMethods, NELEM(sqliteDatabaseMethods)); 288} 289 290int register_SQLite_Vm(JNIEnv* env) { 291 return jniRegisterNativeMethods(env, "SQLite/Vm", 292 sqliteVmMethods, NELEM(sqliteVmMethods)); 293} 294 295int register_SQLite_FunctionContext(JNIEnv* env) { 296 return jniRegisterNativeMethods(env, "SQLite/FunctionContext", 297 sqliteFunctionContextMethods, NELEM(sqliteFunctionContextMethods)); 298} 299 300int register_SQLite_Stmt(JNIEnv* env) { 301 return jniRegisterNativeMethods(env, "SQLite/Stmt", 302 sqliteStmtMethods, NELEM(sqliteStmtMethods)); 303} 304 305int register_SQLite_Blob(JNIEnv* env) { 306 return jniRegisterNativeMethods(env, "SQLite/Blob", 307 sqliteBlobMethods, NELEM(sqliteBlobMethods)); 308} 309