Skip to content
Snippets Groups Projects

F files

Merged Timm Fitschen requested to merge f-files into dev
Files
28
#include "caosdb/entity.h" // for FileDescriptor
#include "caosdb/entity/v1alpha1/main.grpc.pb.h" // for FileTransmissionS...
#include "caosdb/handler_interface.h" // for HandlerInterface
#include "caosdb/status_code.h" // for StatusCode
#include "caosdb/transaction_status.h" // for StatusCode
#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue
#include <memory> // for shared_ptr, uniqu...
namespace caosdb::transaction {
using caosdb::StatusCode;
using caosdb::entity::FileDescriptor;
using caosdb::entity::v1alpha1::FileTransmissionService;
class FileExchangeClient final {
public:
FileExchangeClient(
const std::shared_ptr<FileTransmissionService::Stub> &service)
: stub_(service) {}
~FileExchangeClient();
FileExchangeClient(const FileExchangeClient &) = delete;
FileExchangeClient &operator=(const FileExchangeClient &) = delete;
FileExchangeClient(FileExchangeClient &&) = delete;
FileExchangeClient &operator=(FileExchangeClient &&) = delete;
StatusCode upload(const FileDescriptor &file_descriptor);
StatusCode download(const FileDescriptor &file_descriptor);
void Cancel();
private:
int processMessages();
grpc::CompletionQueue cq_;
std::shared_ptr<FileTransmissionService::Stub> stub_;
std::unique_ptr<HandlerInterface> handler_;
};
} // namespace caosdb::transaction
Loading