aboutsummaryrefslogtreecommitdiff
path: root/icing/jni/icing-search-engine-jni.cc
diff options
context:
space:
mode:
Diffstat (limited to 'icing/jni/icing-search-engine-jni.cc')
-rw-r--r--icing/jni/icing-search-engine-jni.cc451
1 files changed, 143 insertions, 308 deletions
diff --git a/icing/jni/icing-search-engine-jni.cc b/icing/jni/icing-search-engine-jni.cc
index f2a33e0..f551054 100644
--- a/icing/jni/icing-search-engine-jni.cc
+++ b/icing/jni/icing-search-engine-jni.cc
@@ -36,10 +36,6 @@
namespace {
-// JNI string constants
-// Matches field name of IcingSearchEngine#nativePointer.
-const char kNativePointerField[] = "nativePointer";
-
bool ParseProtoFromJniByteArray(JNIEnv* env, jbyteArray bytes,
google::protobuf::MessageLite* protobuf) {
icing::lib::ScopedPrimitiveArrayCritical<uint8_t> scoped_array(env, bytes);
@@ -61,11 +57,14 @@ jbyteArray SerializeProtoToJniByteArray(JNIEnv* env,
return ret;
}
+struct {
+ jfieldID native_pointer;
+} JavaIcingSearchEngineImpl;
+
icing::lib::IcingSearchEngine* GetIcingSearchEnginePointer(JNIEnv* env,
jobject object) {
- jclass cls = env->GetObjectClass(object);
- jfieldID field_id = env->GetFieldID(cls, kNativePointerField, "J");
- jlong native_pointer = env->GetLongField(object, field_id);
+ jlong native_pointer =
+ env->GetLongField(object, JavaIcingSearchEngineImpl.native_pointer);
return reinterpret_cast<icing::lib::IcingSearchEngine*>(native_pointer);
}
@@ -73,19 +72,8 @@ icing::lib::IcingSearchEngine* GetIcingSearchEnginePointer(JNIEnv* env,
extern "C" {
-jint JNI_OnLoad(JavaVM* vm, void* reserved) {
- JNIEnv* env;
- if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
- ICING_LOG(icing::lib::ERROR) << "ERROR: GetEnv failed";
- return JNI_ERR;
- }
-
- return JNI_VERSION_1_6;
-}
-
-JNIEXPORT jlong JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeCreate(
- JNIEnv* env, jclass clazz, jbyteArray icing_search_engine_options_bytes) {
+jlong nativeCreate(JNIEnv* env, jclass clazz,
+ jbyteArray icing_search_engine_options_bytes) {
icing::lib::IcingSearchEngineOptions options;
if (!ParseProtoFromJniByteArray(env, icing_search_engine_options_bytes,
&options)) {
@@ -103,17 +91,13 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeCreate(
return reinterpret_cast<jlong>(icing);
}
-JNIEXPORT void JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeDestroy(
- JNIEnv* env, jclass clazz, jobject object) {
+void nativeDestroy(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
delete icing;
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeInitialize(
- JNIEnv* env, jclass clazz, jobject object) {
+jbyteArray nativeInitialize(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -123,10 +107,9 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeInitialize(
return SerializeProtoToJniByteArray(env, initialize_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeSetSchema(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray schema_bytes,
- jboolean ignore_errors_and_delete_documents) {
+jbyteArray nativeSetSchema(JNIEnv* env, jclass clazz, jobject object,
+ jbyteArray schema_bytes,
+ jboolean ignore_errors_and_delete_documents) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -143,9 +126,7 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeSetSchema(
return SerializeProtoToJniByteArray(env, set_schema_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetSchema(
- JNIEnv* env, jclass clazz, jobject object) {
+jbyteArray nativeGetSchema(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -154,9 +135,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetSchema(
return SerializeProtoToJniByteArray(env, get_schema_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetSchemaType(
- JNIEnv* env, jclass clazz, jobject object, jstring schema_type) {
+jbyteArray nativeGetSchemaType(JNIEnv* env, jclass clazz, jobject object,
+ jstring schema_type) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -167,9 +147,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetSchemaType(
return SerializeProtoToJniByteArray(env, get_schema_type_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativePut(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray document_bytes) {
+jbyteArray nativePut(JNIEnv* env, jclass clazz, jobject object,
+ jbyteArray document_bytes) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -186,10 +165,9 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativePut(
return SerializeProtoToJniByteArray(env, put_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGet(
- JNIEnv* env, jclass clazz, jobject object, jstring name_space, jstring uri,
- jbyteArray result_spec_bytes) {
+jbyteArray nativeGet(JNIEnv* env, jclass clazz, jobject object,
+ jstring name_space, jstring uri,
+ jbyteArray result_spec_bytes) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -208,9 +186,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGet(
return SerializeProtoToJniByteArray(env, get_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeReportUsage(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray usage_report_bytes) {
+jbyteArray nativeReportUsage(JNIEnv* env, jclass clazz, jobject object,
+ jbyteArray usage_report_bytes) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -227,9 +204,7 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeReportUsage(
return SerializeProtoToJniByteArray(env, report_usage_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetAllNamespaces(
- JNIEnv* env, jclass clazz, jobject object) {
+jbyteArray nativeGetAllNamespaces(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -239,10 +214,9 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetAllNamespaces(
return SerializeProtoToJniByteArray(env, get_all_namespaces_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetNextPage(
- JNIEnv* env, jclass clazz, jobject object, jlong next_page_token,
- jlong java_to_native_start_timestamp_ms) {
+jbyteArray nativeGetNextPage(JNIEnv* env, jclass clazz, jobject object,
+ jlong next_page_token,
+ jlong java_to_native_start_timestamp_ms) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -263,9 +237,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetNextPage(
return SerializeProtoToJniByteArray(env, next_page_result_proto);
}
-JNIEXPORT void JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeInvalidateNextPageToken(
- JNIEnv* env, jclass clazz, jobject object, jlong next_page_token) {
+void nativeInvalidateNextPageToken(JNIEnv* env, jclass clazz, jobject object,
+ jlong next_page_token) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -274,11 +247,11 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeInvalidateNextPageToke
return;
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeSearch(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray search_spec_bytes,
- jbyteArray scoring_spec_bytes, jbyteArray result_spec_bytes,
- jlong java_to_native_start_timestamp_ms) {
+jbyteArray nativeSearch(JNIEnv* env, jclass clazz, jobject object,
+ jbyteArray search_spec_bytes,
+ jbyteArray scoring_spec_bytes,
+ jbyteArray result_spec_bytes,
+ jlong java_to_native_start_timestamp_ms) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -321,10 +294,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeSearch(
return SerializeProtoToJniByteArray(env, search_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeDelete(
- JNIEnv* env, jclass clazz, jobject object, jstring name_space,
- jstring uri) {
+jbyteArray nativeDelete(JNIEnv* env, jclass clazz, jobject object,
+ jstring name_space, jstring uri) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -336,9 +307,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeDelete(
return SerializeProtoToJniByteArray(env, delete_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteByNamespace(
- JNIEnv* env, jclass clazz, jobject object, jstring name_space) {
+jbyteArray nativeDeleteByNamespace(JNIEnv* env, jclass clazz, jobject object,
+ jstring name_space) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -349,9 +319,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteByNamespace(
return SerializeProtoToJniByteArray(env, delete_by_namespace_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteBySchemaType(
- JNIEnv* env, jclass clazz, jobject object, jstring schema_type) {
+jbyteArray nativeDeleteBySchemaType(JNIEnv* env, jclass clazz, jobject object,
+ jstring schema_type) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -362,10 +331,9 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteBySchemaType(
return SerializeProtoToJniByteArray(env, delete_by_schema_type_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteByQuery(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray search_spec_bytes,
- jboolean return_deleted_document_info) {
+jbyteArray nativeDeleteByQuery(JNIEnv* env, jclass clazz, jobject object,
+ jbyteArray search_spec_bytes,
+ jboolean return_deleted_document_info) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -381,9 +349,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteByQuery(
return SerializeProtoToJniByteArray(env, delete_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativePersistToDisk(
- JNIEnv* env, jclass clazz, jobject object, jint persist_type_code) {
+jbyteArray nativePersistToDisk(JNIEnv* env, jclass clazz, jobject object,
+ jint persist_type_code) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -400,9 +367,7 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativePersistToDisk(
return SerializeProtoToJniByteArray(env, persist_to_disk_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeOptimize(
- JNIEnv* env, jclass clazz, jobject object) {
+jbyteArray nativeOptimize(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -411,9 +376,7 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeOptimize(
return SerializeProtoToJniByteArray(env, optimize_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetOptimizeInfo(
- JNIEnv* env, jclass clazz, jobject object) {
+jbyteArray nativeGetOptimizeInfo(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -423,9 +386,7 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetOptimizeInfo(
return SerializeProtoToJniByteArray(env, get_optimize_info_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetStorageInfo(
- JNIEnv* env, jclass clazz, jobject object) {
+jbyteArray nativeGetStorageInfo(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -435,9 +396,7 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetStorageInfo(
return SerializeProtoToJniByteArray(env, storage_info_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeReset(
- JNIEnv* env, jclass clazz, jobject object) {
+jbyteArray nativeReset(JNIEnv* env, jclass clazz, jobject object) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -446,10 +405,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeReset(
return SerializeProtoToJniByteArray(env, reset_result_proto);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeSearchSuggestions(
- JNIEnv* env, jclass clazz, jobject object,
- jbyteArray suggestion_spec_bytes) {
+jbyteArray nativeSearchSuggestions(JNIEnv* env, jclass clazz, jobject object,
+ jbyteArray suggestion_spec_bytes) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -466,9 +423,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeSearchSuggestions(
return SerializeProtoToJniByteArray(env, suggestionResponse);
}
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetDebugInfo(
- JNIEnv* env, jclass clazz, jobject object, jint verbosity) {
+jbyteArray nativeGetDebugInfo(JNIEnv* env, jclass clazz, jobject object,
+ jint verbosity) {
icing::lib::IcingSearchEngine* icing =
GetIcingSearchEnginePointer(env, object);
@@ -485,9 +441,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetDebugInfo(
return SerializeProtoToJniByteArray(env, debug_info_result_proto);
}
-JNIEXPORT jboolean JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeShouldLog(
- JNIEnv* env, jclass clazz, jshort severity, jshort verbosity) {
+jboolean nativeShouldLog(JNIEnv* env, jclass clazz, jshort severity,
+ jshort verbosity) {
if (!icing::lib::LogSeverity::Code_IsValid(severity)) {
ICING_LOG(icing::lib::ERROR)
<< "Invalid value for logging severity: " << severity;
@@ -497,9 +452,8 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeShouldLog(
static_cast<icing::lib::LogSeverity::Code>(severity), verbosity);
}
-JNIEXPORT jboolean JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeSetLoggingLevel(
- JNIEnv* env, jclass clazz, jshort severity, jshort verbosity) {
+jboolean nativeSetLoggingLevel(JNIEnv* env, jclass clazz, jshort severity,
+ jshort verbosity) {
if (!icing::lib::LogSeverity::Code_IsValid(severity)) {
ICING_LOG(icing::lib::ERROR)
<< "Invalid value for logging severity: " << severity;
@@ -509,216 +463,97 @@ Java_com_google_android_icing_IcingSearchEngineImpl_nativeSetLoggingLevel(
static_cast<icing::lib::LogSeverity::Code>(severity), verbosity);
}
-JNIEXPORT jstring JNICALL
-Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetLoggingTag(
- JNIEnv* env, jclass clazz) {
+jstring nativeGetLoggingTag(JNIEnv* env, jclass clazz) {
return env->NewStringUTF(icing::lib::kIcingLoggingTag);
}
-// TODO(b/240333360) Remove the methods below for IcingSearchEngine once we have
-// a sync from Jetpack to g3 to contain the refactored IcingSearchEngine(with
-// IcingSearchEngineImpl).
-JNIEXPORT jlong JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeCreate(
- JNIEnv* env, jclass clazz, jbyteArray icing_search_engine_options_bytes) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeCreate(
- env, clazz, icing_search_engine_options_bytes);
-}
-
-JNIEXPORT void JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeDestroy(JNIEnv* env,
- jclass clazz,
- jobject object) {
- Java_com_google_android_icing_IcingSearchEngineImpl_nativeDestroy(env, clazz,
- object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeInitialize(
- JNIEnv* env, jclass clazz, jobject object) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeInitialize(
- env, clazz, object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeSetSchema(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray schema_bytes,
- jboolean ignore_errors_and_delete_documents) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeSetSchema(
- env, clazz, object, schema_bytes, ignore_errors_and_delete_documents);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetSchema(
- JNIEnv* env, jclass clazz, jobject object) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetSchema(
- env, clazz, object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetSchemaType(
- JNIEnv* env, jclass clazz, jobject object, jstring schema_type) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetSchemaType(
- env, clazz, object, schema_type);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativePut(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray document_bytes) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativePut(
- env, clazz, object, document_bytes);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGet(
- JNIEnv* env, jclass clazz, jobject object, jstring name_space, jstring uri,
- jbyteArray result_spec_bytes) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGet(
- env, clazz, object, name_space, uri, result_spec_bytes);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeReportUsage(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray usage_report_bytes) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeReportUsage(
- env, clazz, object, usage_report_bytes);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetAllNamespaces(
- JNIEnv* env, jclass clazz, jobject object) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetAllNamespaces(
- env, clazz, object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetNextPage(
- JNIEnv* env, jclass clazz, jobject object, jlong next_page_token,
- jlong java_to_native_start_timestamp_ms) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetNextPage(
- env, clazz, object, next_page_token, java_to_native_start_timestamp_ms);
-}
-
-JNIEXPORT void JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeInvalidateNextPageToken(
- JNIEnv* env, jclass clazz, jobject object, jlong next_page_token) {
- Java_com_google_android_icing_IcingSearchEngineImpl_nativeInvalidateNextPageToken(
- env, clazz, object, next_page_token);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeSearch(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray search_spec_bytes,
- jbyteArray scoring_spec_bytes, jbyteArray result_spec_bytes,
- jlong java_to_native_start_timestamp_ms) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeSearch(
- env, clazz, object, search_spec_bytes, scoring_spec_bytes,
- result_spec_bytes, java_to_native_start_timestamp_ms);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeDelete(JNIEnv* env,
- jclass clazz,
- jobject object,
- jstring name_space,
- jstring uri) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeDelete(
- env, clazz, object, name_space, uri);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeDeleteByNamespace(
- JNIEnv* env, jclass clazz, jobject object, jstring name_space) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteByNamespace(
- env, clazz, object, name_space);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeDeleteBySchemaType(
- JNIEnv* env, jclass clazz, jobject object, jstring schema_type) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteBySchemaType(
- env, clazz, object, schema_type);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeDeleteByQuery(
- JNIEnv* env, jclass clazz, jobject object, jbyteArray search_spec_bytes,
- jboolean return_deleted_document_info) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeDeleteByQuery(
- env, clazz, object, search_spec_bytes, return_deleted_document_info);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativePersistToDisk(
- JNIEnv* env, jclass clazz, jobject object, jint persist_type_code) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativePersistToDisk(
- env, clazz, object, persist_type_code);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeOptimize(JNIEnv* env,
- jclass clazz,
- jobject object) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeOptimize(
- env, clazz, object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetOptimizeInfo(
- JNIEnv* env, jclass clazz, jobject object) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetOptimizeInfo(
- env, clazz, object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetStorageInfo(
- JNIEnv* env, jclass clazz, jobject object) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetStorageInfo(
- env, clazz, object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeReset(JNIEnv* env,
- jclass clazz,
- jobject object) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeReset(
- env, clazz, object);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeSearchSuggestions(
- JNIEnv* env, jclass clazz, jobject object,
- jbyteArray suggestion_spec_bytes) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeSearchSuggestions(
- env, clazz, object, suggestion_spec_bytes);
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetDebugInfo(
- JNIEnv* env, jclass clazz, jobject object, jint verbosity) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetDebugInfo(
- env, clazz, object, verbosity);
-}
-
-JNIEXPORT jboolean JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeShouldLog(
- JNIEnv* env, jclass clazz, jshort severity, jshort verbosity) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeShouldLog(
- env, clazz, severity, verbosity);
-}
+#pragma clang diagnostic ignored "-Wwrite-strings"
+jint JNI_OnLoad(JavaVM* vm, void* reserved) {
+ JNIEnv* env;
+ if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
+ ICING_LOG(icing::lib::ERROR) << "ERROR: GetEnv failed";
+ return JNI_ERR;
+ }
-JNIEXPORT jboolean JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeSetLoggingLevel(
- JNIEnv* env, jclass clazz, jshort severity, jshort verbosity) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeSetLoggingLevel(
- env, clazz, severity, verbosity);
-}
+ // Find your class. JNI_OnLoad is called from the correct class loader context
+ // for this to work.
+ jclass java_class =
+ env->FindClass("com/google/android/icing/IcingSearchEngineImpl");
+ if (java_class == nullptr) {
+ return JNI_ERR;
+ }
+ JavaIcingSearchEngineImpl.native_pointer =
+ env->GetFieldID(java_class, "nativePointer", "J");
+
+ // Register your class' native methods.
+ static const JNINativeMethod methods[] = {
+ {"nativeCreate", "([B)J", reinterpret_cast<void*>(nativeCreate)},
+ {"nativeDestroy", "(Lcom/google/android/icing/IcingSearchEngineImpl;)V",
+ reinterpret_cast<void*>(nativeDestroy)},
+ {"nativeInitialize",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;)[B",
+ reinterpret_cast<void*>(nativeInitialize)},
+ {"nativeSetSchema",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;[BZ)[B",
+ reinterpret_cast<void*>(nativeSetSchema)},
+ {"nativeGetSchema",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;)[B",
+ reinterpret_cast<void*>(nativeGetSchema)},
+ {"nativePut", "(Lcom/google/android/icing/IcingSearchEngineImpl;[B)[B",
+ reinterpret_cast<void*>(nativePut)},
+ {"nativeGet",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;Ljava/lang/"
+ "String;Ljava/lang/String;[B)[B",
+ reinterpret_cast<void*>(nativeGet)},
+ {"nativeReportUsage",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;[B)[B",
+ reinterpret_cast<void*>(nativeReportUsage)},
+ {"nativeGetAllNamespaces",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;)[B",
+ reinterpret_cast<void*>(nativeGetAllNamespaces)},
+ {"nativeGetNextPage",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;JJ)[B",
+ reinterpret_cast<void*>(nativeGetNextPage)},
+ {"nativeInvalidateNextPageToken",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;J)V",
+ reinterpret_cast<void*>(nativeInvalidateNextPageToken)},
+ {"nativeSearch",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;[B[B[BJ)[B",
+ reinterpret_cast<void*>(nativeSearch)},
+ {"nativeDelete",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;Ljava/lang/"
+ "String;Ljava/lang/String;)[B",
+ reinterpret_cast<void*>(nativeDelete)},
+ {"nativeDeleteByQuery",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;[BZ)[B",
+ reinterpret_cast<void*>(nativeDeleteByQuery)},
+ {"nativePersistToDisk",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;I)[B",
+ reinterpret_cast<void*>(nativePersistToDisk)},
+ {"nativeOptimize", "(Lcom/google/android/icing/IcingSearchEngineImpl;)[B",
+ reinterpret_cast<void*>(nativeOptimize)},
+ {"nativeGetOptimizeInfo",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;)[B",
+ reinterpret_cast<void*>(nativeGetOptimizeInfo)},
+ {"nativeGetStorageInfo",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;)[B",
+ reinterpret_cast<void*>(nativeGetStorageInfo)},
+ {"nativeReset", "(Lcom/google/android/icing/IcingSearchEngineImpl;)[B",
+ reinterpret_cast<void*>(nativeReset)},
+ {"nativeSearchSuggestions",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;[B)[B",
+ reinterpret_cast<void*>(nativeSearchSuggestions)},
+ {"nativeGetDebugInfo",
+ "(Lcom/google/android/icing/IcingSearchEngineImpl;I)[B",
+ reinterpret_cast<void*>(nativeGetDebugInfo)},
+ };
+ int register_natives_success = env->RegisterNatives(
+ java_class, methods, sizeof(methods) / sizeof(JNINativeMethod));
+ if (register_natives_success != JNI_OK) {
+ return register_natives_success;
+ }
-JNIEXPORT jstring JNICALL
-Java_com_google_android_icing_IcingSearchEngine_nativeGetLoggingTag(
- JNIEnv* env, jclass clazz) {
- return Java_com_google_android_icing_IcingSearchEngineImpl_nativeGetLoggingTag(
- env, clazz);
+ return JNI_VERSION_1_6;
}
} // extern "C"