diff options
Diffstat (limited to 'icing/jni/icing-search-engine-jni.cc')
-rw-r--r-- | icing/jni/icing-search-engine-jni.cc | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/icing/jni/icing-search-engine-jni.cc b/icing/jni/icing-search-engine-jni.cc index c9e7127..6757e29 100644 --- a/icing/jni/icing-search-engine-jni.cc +++ b/icing/jni/icing-search-engine-jni.cc @@ -236,13 +236,26 @@ Java_com_google_android_icing_IcingSearchEngine_nativeGetAllNamespaces( JNIEXPORT jbyteArray JNICALL Java_com_google_android_icing_IcingSearchEngine_nativeGetNextPage( - JNIEnv* env, jclass clazz, jobject object, jlong next_page_token) { + JNIEnv* env, jclass clazz, jobject object, jlong next_page_token, + jlong java_to_native_start_timestamp_ms) { icing::lib::IcingSearchEngine* icing = GetIcingSearchEnginePointer(env, object); + const std::unique_ptr<const icing::lib::Clock> clock = + std::make_unique<icing::lib::Clock>(); + // TODO(b/236412954): java_to_native_start_timestamp_ms can only be used after + // cl/469819190 is synced to Jetpack and exported back to google3. + // int32 java_to_native_jni_latency_ms = + // clock->GetSystemTimeMilliseconds() - java_to_native_start_timestamp_ms; + icing::lib::SearchResultProto next_page_result_proto = icing->GetNextPage(next_page_token); + icing::lib::QueryStatsProto* query_stats = + next_page_result_proto.mutable_query_stats(); + // query_stats->set_java_to_native_jni_latency_ms(java_to_native_jni_latency_ms); + query_stats->set_native_to_java_start_timestamp_ms(clock->GetSystemTimeMilliseconds()); + return SerializeProtoToJniByteArray(env, next_page_result_proto); } @@ -260,7 +273,8 @@ Java_com_google_android_icing_IcingSearchEngine_nativeInvalidateNextPageToken( 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) { + jbyteArray scoring_spec_bytes, jbyteArray result_spec_bytes, + jlong java_to_native_start_timestamp_ms) { icing::lib::IcingSearchEngine* icing = GetIcingSearchEnginePointer(env, object); @@ -283,9 +297,21 @@ Java_com_google_android_icing_IcingSearchEngine_nativeSearch( return nullptr; } + const std::unique_ptr<const icing::lib::Clock> clock = + std::make_unique<icing::lib::Clock>(); + // TODO(b/236412954): java_to_native_start_timestamp_ms can only be used after + // cl/469819190 is synced to Jetpack and exported back to google3. + // int32 java_to_native_jni_latency_ms = + // clock->GetSystemTimeMilliseconds() - java_to_native_start_timestamp_ms; + icing::lib::SearchResultProto search_result_proto = icing->Search(search_spec_proto, scoring_spec_proto, result_spec_proto); + icing::lib::QueryStatsProto* query_stats = + search_result_proto.mutable_query_stats(); + // query_stats->set_java_to_native_jni_latency_ms(java_to_native_jni_latency_ms); + query_stats->set_native_to_java_start_timestamp_ms(clock->GetSystemTimeMilliseconds()); + return SerializeProtoToJniByteArray(env, search_result_proto); } |