diff --git a/src/roma/interface/roma.h b/src/roma/interface/roma.h index 8df7b2bf9..53731b6d0 100644 --- a/src/roma/interface/roma.h +++ b/src/roma/interface/roma.h @@ -134,9 +134,9 @@ struct ResponseObject { using Callback = absl::AnyInvocable)>; // Batch API -// void Callback(const vector&); -using BatchCallback = absl::AnyInvocable>&)>; +// void Callback(vector); +using BatchCallback = + absl::AnyInvocable>)>; } // namespace google::scp::roma #endif // ROMA_INTERFACE_ROMA_H_ diff --git a/src/roma/roma_service/roma_service.h b/src/roma/roma_service/roma_service.h index 68dc706d9..335d16bac 100644 --- a/src/roma/roma_service/roma_service.h +++ b/src/roma/roma_service/roma_service.h @@ -384,9 +384,8 @@ class RomaService { auto batch_callback_ptr = std::make_shared( [&, uuids = std::move(uuids), batch_callback = std::move(batch_callback)]( - const std::vector>& - batch_resp) mutable { - std::move(batch_callback)(batch_resp); + std::vector> batch_resp) mutable { + std::move(batch_callback)(std::move(batch_resp)); for (const auto& uuid : uuids) { DeleteMetadata(uuid); } @@ -402,7 +401,7 @@ class RomaService { (*batch_response)[index] = std::move(obj_response); auto finished_value = finished_counter->fetch_add(1); if (finished_value + 1 == batch_response->size()) { - (*batch_callback_ptr)(*batch_response); + (*batch_callback_ptr)(std::move(*batch_response)); } }; absl::Status result;