diff --git a/services/backup/docker-server/contents/server/src/Reactors/client/blob/BlobPutClientReactor.h b/services/backup/docker-server/contents/server/src/Reactors/client/blob/BlobPutClientReactor.h --- a/services/backup/docker-server/contents/server/src/Reactors/client/blob/BlobPutClientReactor.h +++ b/services/backup/docker-server/contents/server/src/Reactors/client/blob/BlobPutClientReactor.h @@ -36,7 +36,7 @@ public: BlobPutClientReactor(const std::string &holder, const std::string &hash); - void scheduleSendingDataChunk(const std::string &dataChunk); + void scheduleSendingDataChunk(std::string &dataChunk); std::unique_ptr prepareRequest( blob::PutRequest &request, std::shared_ptr previousResponse) override; @@ -50,12 +50,8 @@ dataChunks(folly::MPMCQueue(100)) { } -void BlobPutClientReactor::scheduleSendingDataChunk( - const std::string &dataChunk) { - // TODO: we may be copying a big chunk of data, but `write` seems to only - // accept `std::move` - std::string str = std::string(dataChunk); - if (!this->dataChunks.write(std::move(str))) { +void BlobPutClientReactor::scheduleSendingDataChunk(std::string &dataChunk) { + if (!this->dataChunks.write(std::move(dataChunk))) { throw std::runtime_error( "Error scheduling sending a data chunk to send to the blob service"); } diff --git a/services/backup/docker-server/contents/server/src/Reactors/server/CreateNewBackupReactor.h b/services/backup/docker-server/contents/server/src/Reactors/server/CreateNewBackupReactor.h --- a/services/backup/docker-server/contents/server/src/Reactors/server/CreateNewBackupReactor.h +++ b/services/backup/docker-server/contents/server/src/Reactors/server/CreateNewBackupReactor.h @@ -75,7 +75,7 @@ } ServiceBlobClient::getInstance().putReactor->scheduleSendingDataChunk( - request.newcompactionchunk()); + *request.mutable_newcompactionchunk()); return nullptr; } @@ -84,7 +84,9 @@ } void CreateNewBackupReactor::doneCallback() { - ServiceBlobClient::getInstance().putReactor->scheduleSendingDataChunk(""); + std::string emptyString = ""; + ServiceBlobClient::getInstance().putReactor->scheduleSendingDataChunk( + emptyString); } } // namespace reactor