diff options
Diffstat (limited to 'platform/android/src/android/database/sqlite/sqlite_database.cpp')
-rw-r--r-- | platform/android/src/android/database/sqlite/sqlite_database.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/platform/android/src/android/database/sqlite/sqlite_database.cpp b/platform/android/src/android/database/sqlite/sqlite_database.cpp new file mode 100644 index 0000000000..51e686dce6 --- /dev/null +++ b/platform/android/src/android/database/sqlite/sqlite_database.cpp @@ -0,0 +1,38 @@ +#include "sqlite_database.hpp" + +namespace mbgl { +namespace android { +namespace android { +namespace database { +namespace sqlite { + +jni::Class<SQLiteDatabase> SQLiteDatabase::Class(jni::JNIEnv& env) { + static auto clazz = *jni::Class<SQLiteDatabase>::Find(env).NewGlobalRef(env).release(); + return clazz; +} + +jni::Object<SQLiteDatabase> +SQLiteDatabase::OpenDatabase(jni::JNIEnv& env, jni::String path, jni::jint flags) { + using Signature = + jni::Object<SQLiteDatabase>(jni::String, jni::Object<CursorFactory>, jni::jint); + static auto method = Class(env).GetStaticMethod<Signature>(env, "openDatabase"); + return Class(env).Call(env, method, path, jni::Object<CursorFactory>(nullptr), flags); +} + +void SQLiteDatabase::ExecSQL(jni::JNIEnv& env, jni::Object<SQLiteDatabase> db, jni::String sql) { + using Signature = void(jni::String); + static auto method = Class(env).GetMethod<Signature>(env, "execSQL"); + return db.Call(env, method, sql); +} + +void SQLiteDatabase::Close(jni::JNIEnv& env, jni::Object<SQLiteDatabase> db) { + using Signature = void(void); + static auto method = Class(env).GetMethod<Signature>(env, "close"); + return db.Call(env, method); +} + +} // namespace sqlite +} // namespace database +} // namespace android +} // namespace android +} // namespace mbgl |