ml: migrate mojom to OnceCallback

Callback will be deprecated in generated mojom bindings.
Move to OnceCallback now so it can be compatible with newer libchrome.

BUG=chromium:1054279
TEST=emerge

Change-Id: I00b9972fdd4a32ab704242f385ea561327fa7571
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2154300
Reviewed-by: Andrew Moylan <amoylan@chromium.org>
Tested-by: Qijiang Fan <fqj@google.com>
Commit-Queue: Qijiang Fan <fqj@google.com>
diff --git a/ml/machine_learning_service_impl.cc b/ml/machine_learning_service_impl.cc
index de71d72..62b2f81 100644
--- a/ml/machine_learning_service_impl.cc
+++ b/ml/machine_learning_service_impl.cc
@@ -54,13 +54,13 @@
 void MachineLearningServiceImpl::LoadBuiltinModel(
     BuiltinModelSpecPtr spec,
     ModelRequest request,
-    const LoadBuiltinModelCallback& callback) {
+    LoadBuiltinModelCallback callback) {
   // Unsupported models do not have metadata entries.
   const auto metadata_lookup = builtin_model_metadata_.find(spec->id);
   if (metadata_lookup == builtin_model_metadata_.end()) {
     LOG(WARNING) << "LoadBuiltinModel requested for unsupported model ID "
                  << spec->id << ".";
-    callback.Run(LoadModelResult::MODEL_SPEC_ERROR);
+    std::move(callback).Run(LoadModelResult::MODEL_SPEC_ERROR);
     RecordModelSpecificationErrorEvent();
     return;
   }
@@ -79,7 +79,7 @@
       tflite::FlatBufferModel::BuildFromFile(model_path.c_str());
   if (model == nullptr) {
     LOG(ERROR) << "Failed to load model file '" << model_path << "'.";
-    callback.Run(LoadModelResult::LOAD_MODEL_ERROR);
+    std::move(callback).Run(LoadModelResult::LOAD_MODEL_ERROR);
     request_metrics.RecordRequestEvent(LoadModelResult::LOAD_MODEL_ERROR);
     return;
   }
@@ -88,7 +88,7 @@
                     std::move(model), std::move(request),
                     metadata.metrics_model_name);
 
-  callback.Run(LoadModelResult::OK);
+  std::move(callback).Run(LoadModelResult::OK);
 
   request_metrics.FinishRecordingPerformanceMetrics();
   request_metrics.RecordRequestEvent(LoadModelResult::OK);
@@ -97,7 +97,7 @@
 void MachineLearningServiceImpl::LoadFlatBufferModel(
     FlatBufferModelSpecPtr spec,
     ModelRequest request,
-    const LoadFlatBufferModelCallback& callback) {
+    LoadFlatBufferModelCallback callback) {
   DCHECK(!spec->metrics_model_name.empty());
 
   RequestMetrics<LoadModelResult> request_metrics(spec->metrics_model_name,
@@ -115,7 +115,7 @@
   if (model == nullptr) {
     LOG(ERROR) << "Failed to load model string of metric name: "
                << spec->metrics_model_name << "'.";
-    callback.Run(LoadModelResult::LOAD_MODEL_ERROR);
+    std::move(callback).Run(LoadModelResult::LOAD_MODEL_ERROR);
     request_metrics.RecordRequestEvent(LoadModelResult::LOAD_MODEL_ERROR);
     return;
   }
@@ -126,7 +126,7 @@
       std::move(model), std::move(model_string_impl), std::move(request),
       spec->metrics_model_name);
 
-  callback.Run(LoadModelResult::OK);
+  std::move(callback).Run(LoadModelResult::OK);
 
   request_metrics.FinishRecordingPerformanceMetrics();
   request_metrics.RecordRequestEvent(LoadModelResult::OK);