| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/segmentation_platform/public/android/prediction_options_android.h" |
| |
| #include "base/memory/scoped_refptr.h" |
| #include "components/segmentation_platform/public/prediction_options.h" |
| |
| #include <jni.h> |
| |
| // Must come after all headers that specialize FromJniType() / ToJniType(). |
| #include "components/segmentation_platform/public/jni_headers/PredictionOptions_jni.h" |
| |
| namespace segmentation_platform { |
| |
| // static |
| PredictionOptions PredictionOptionsAndroid::ToNativePredictionOptions( |
| JNIEnv* env, |
| const base::android::JavaRef<jobject>& j_prediction_options) { |
| PredictionOptions prediction_options; |
| Java_PredictionOptions_fillNativePredictionOptions( |
| env, j_prediction_options, |
| reinterpret_cast<intptr_t>(&prediction_options)); |
| |
| return prediction_options; |
| } |
| |
| void PredictionOptionsAndroid::FromJavaParams( |
| JNIEnv* env, |
| const jlong target, |
| const jboolean on_demand_execution, |
| const jboolean can_update_cache_for_future_requests, |
| const jboolean fallback_allowed) { |
| PredictionOptions* prediction_options = |
| reinterpret_cast<PredictionOptions*>(target); |
| |
| prediction_options->on_demand_execution = on_demand_execution; |
| prediction_options->can_update_cache_for_future_requests = |
| can_update_cache_for_future_requests; |
| prediction_options->fallback_allowed = fallback_allowed; |
| } |
| |
| static void JNI_PredictionOptions_FillNative( |
| JNIEnv* env, |
| const jlong prediction_options_ptr, |
| const jboolean on_demand_execution, |
| const jboolean can_update_cache_for_future_requests, |
| const jboolean fallback_allowed) { |
| segmentation_platform::PredictionOptionsAndroid::FromJavaParams( |
| env, prediction_options_ptr, on_demand_execution, |
| can_update_cache_for_future_requests, fallback_allowed); |
| } |
| |
| } // namespace segmentation_platform |