sqlite_jni_registration.c revision 2ad60cfc28e14ee8f0bb038720836a4696c478ad
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