diff --git a/services/backup/src/Reactors/server/AddAttachmentReactor.h b/services/backup/src/Reactors/server/AddAttachmentReactor.h new file mode 100644 --- /dev/null +++ b/services/backup/src/Reactors/server/AddAttachmentReactor.h @@ -0,0 +1,50 @@ +#pragma once + +#include "DatabaseEntitiesTools.h" +#include "ServerReadReactorBase.h" +#include "ServiceBlobClient.h" + +#include "../_generated/backup.grpc.pb.h" +#include "../_generated/backup.pb.h" + +#include +#include +#include + +namespace comm { +namespace network { +namespace reactor { + +class AddAttachmentReactor : public ServerReadReactorBase< + backup::AddAttachmentRequest, + google::protobuf::Empty> { + enum class ParentType { + UNKNOWN = 0, + BACKUP = 1, + LOG = 2, + }; + + ParentType parentType = ParentType::UNKNOWN; + std::string userID; + std::string backupID; + std::string logID; + bool parametersPassed = false; + std::mutex reactorStateMutex; + std::vector holders; + + std::condition_variable blobPutDoneCV; + std::mutex blobPutDoneCVMutex; + +public: + using ServerReadReactorBase< + backup::AddAttachmentRequest, + google::protobuf::Empty>::ServerReadReactorBase; + + std::unique_ptr + readRequest(backup::AddAttachmentRequest request) override; + void terminateCallback() override; +}; + +} // namespace reactor +} // namespace network +} // namespace comm diff --git a/services/backup/src/Reactors/server/AddAttachmentReactor.cpp b/services/backup/src/Reactors/server/AddAttachmentReactor.cpp new file mode 100644 --- /dev/null +++ b/services/backup/src/Reactors/server/AddAttachmentReactor.cpp @@ -0,0 +1,27 @@ +#include "AddAttachmentReactor.h" + +#include "Constants.h" +#include "DatabaseManager.h" +#include "GlobalTools.h" +#include "Tools.h" + +#include + +namespace comm { +namespace network { +namespace reactor { + +std::unique_ptr +AddAttachmentReactor::readRequest(backup::AddAttachmentRequest request) { + // we make sure that the blob client's state is flushed to the main memory + // as there may be multiple threads from the pool taking over here + const std::lock_guard lock(this->reactorStateMutex); + return nullptr; +} + +void AddAttachmentReactor::terminateCallback() { +} + +} // namespace reactor +} // namespace network +} // namespace comm