From 8572b83b3bbcdf4a48a300419a7e98bb5fca5285 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Sun, 15 Aug 2021 01:26:25 +0200 Subject: [PATCH] WIP: files --- include/CMakeLists.txt | 12 ++++++------ ...estHandler.h => download_request_handler.h} | 2 +- .../{FileError.h => file_error.h} | 0 .../{FileLock.h => file_lock.h} | 0 .../{FileReader.h => file_reader.h} | 14 +++++++------- .../{FileWriter.h => file_writer.h} | 10 +++++----- ...questHandler.h => upload_request_handler.h} | 2 +- src/CMakeLists.txt | 10 +++++----- .../{Client.cpp => client.cpp} | 18 +++++++++--------- ...andler.cpp => download_request_handler.cpp} | 2 +- .../{FileReader.cpp => file_reader.cpp} | 10 +++++----- .../{FileWriter.cpp => file_writer.cpp} | 10 +++++----- ...tHandler.cpp => upload_request_handler.cpp} | 2 +- src/caosdb/transaction.cpp | 12 ++++++------ test/test_file_transmission.cpp | 4 ++-- 15 files changed, 54 insertions(+), 54 deletions(-) rename include/caosdb/file_transmission/{DownloadRequestHandler.h => download_request_handler.h} (97%) rename include/caosdb/file_transmission/{FileError.h => file_error.h} (100%) rename include/caosdb/file_transmission/{FileLock.h => file_lock.h} (100%) rename include/caosdb/file_transmission/{FileReader.h => file_reader.h} (64%) rename include/caosdb/file_transmission/{FileWriter.h => file_writer.h} (67%) rename include/caosdb/file_transmission/{UploadRequestHandler.h => upload_request_handler.h} (97%) rename src/caosdb/file_transmission/{Client.cpp => client.cpp} (75%) rename src/caosdb/file_transmission/{DownloadRequestHandler.cpp => download_request_handler.cpp} (98%) rename src/caosdb/file_transmission/{FileReader.cpp => file_reader.cpp} (80%) rename src/caosdb/file_transmission/{FileWriter.cpp => file_writer.cpp} (75%) rename src/caosdb/file_transmission/{UploadRequestHandler.cpp => upload_request_handler.cpp} (98%) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 4393d36..62154f7 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -41,12 +41,12 @@ set(libcaosdb_INCL ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/utility.h ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/register_file_upload_handler.h ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/Client.h - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/UploadRequestHandler.h - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/DownloadRequestHandler.h - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/FileWriter.h - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/FileReader.h - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/FileLock.h - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/FileError.h + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/upload_request_handler.h + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/download_request_handler.h + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/file_writer.h + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/file_reader.h + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/file_lock.h + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/file_error.h ) # pass variable to parent scope diff --git a/include/caosdb/file_transmission/DownloadRequestHandler.h b/include/caosdb/file_transmission/download_request_handler.h similarity index 97% rename from include/caosdb/file_transmission/DownloadRequestHandler.h rename to include/caosdb/file_transmission/download_request_handler.h index a59f906..e6e8f9f 100644 --- a/include/caosdb/file_transmission/DownloadRequestHandler.h +++ b/include/caosdb/file_transmission/download_request_handler.h @@ -1,7 +1,7 @@ #include "caosdb/entity.h" // for FileDescriptor #include "caosdb/entity/v1alpha1/main.grpc.pb.h" // for FileTransmissionS... #include "caosdb/entity/v1alpha1/main.pb.h" // for FileDownloadResponse -#include "caosdb/file_transmission/FileWriter.h" // for FileWriter +#include "caosdb/file_transmission/file_writer.h" // for FileWriter #include "caosdb/handler_interface.h" // for HandlerTag, Handl... #include "caosdb/transaction_status.h" // for TransactionStatus #include <grpcpp/impl/codegen/async_stream.h> // for ClientAsyncReader diff --git a/include/caosdb/file_transmission/FileError.h b/include/caosdb/file_transmission/file_error.h similarity index 100% rename from include/caosdb/file_transmission/FileError.h rename to include/caosdb/file_transmission/file_error.h diff --git a/include/caosdb/file_transmission/FileLock.h b/include/caosdb/file_transmission/file_lock.h similarity index 100% rename from include/caosdb/file_transmission/FileLock.h rename to include/caosdb/file_transmission/file_lock.h diff --git a/include/caosdb/file_transmission/FileReader.h b/include/caosdb/file_transmission/file_reader.h similarity index 64% rename from include/caosdb/file_transmission/FileReader.h rename to include/caosdb/file_transmission/file_reader.h index 4ddca92..9c89f83 100644 --- a/include/caosdb/file_transmission/FileReader.h +++ b/include/caosdb/file_transmission/file_reader.h @@ -1,12 +1,12 @@ #pragma once -#include "caosdb/file_transmission/FileLock.h" // for FileMutex, FileReadLock -#include <boost/filesystem/fstream.hpp> // for ifstream -#include <boost/filesystem/operations.hpp> // for exists -#include <boost/filesystem/path.hpp> // for path -#include <fstream> // for ifstream, size_t -#include <memory> // for shared_ptr -#include <string> // for string +#include "caosdb/file_transmission/file_lock.h" // for FileMutex, FileReadLock +#include <boost/filesystem/fstream.hpp> // for ifstream +#include <boost/filesystem/operations.hpp> // for exists +#include <boost/filesystem/path.hpp> // for path +#include <fstream> // for ifstream, size_t +#include <memory> // for shared_ptr +#include <string> // for string namespace caosdb::transaction { using boost::filesystem::exists; diff --git a/include/caosdb/file_transmission/FileWriter.h b/include/caosdb/file_transmission/file_writer.h similarity index 67% rename from include/caosdb/file_transmission/FileWriter.h rename to include/caosdb/file_transmission/file_writer.h index 0142d72..114918c 100644 --- a/include/caosdb/file_transmission/FileWriter.h +++ b/include/caosdb/file_transmission/file_writer.h @@ -1,10 +1,10 @@ #pragma once -#include "caosdb/file_transmission/FileLock.h" // for FileMutex, FileWriteLock -#include <boost/filesystem/path.hpp> // for path -#include <fstream> // for ofstream -#include <memory> // for shared_ptr -#include <string> // for string +#include "caosdb/file_transmission/file_lock.h" // for FileMutex, FileWriteLock +#include <boost/filesystem/path.hpp> // for path +#include <fstream> // for ofstream +#include <memory> // for shared_ptr +#include <string> // for string namespace caosdb::transaction { diff --git a/include/caosdb/file_transmission/UploadRequestHandler.h b/include/caosdb/file_transmission/upload_request_handler.h similarity index 97% rename from include/caosdb/file_transmission/UploadRequestHandler.h rename to include/caosdb/file_transmission/upload_request_handler.h index 8ee96c8..0bfd455 100644 --- a/include/caosdb/file_transmission/UploadRequestHandler.h +++ b/include/caosdb/file_transmission/upload_request_handler.h @@ -1,7 +1,7 @@ #include "caosdb/entity.h" // for FileDescriptor #include "caosdb/entity/v1alpha1/main.grpc.pb.h" // for FileTransmissionS... #include "caosdb/entity/v1alpha1/main.pb.h" // for FileUploadRequest -#include "caosdb/file_transmission/FileReader.h" // for FileReader +#include "caosdb/file_transmission/file_reader.h" // for FileReader #include "caosdb/handler_interface.h" // for HandlerTag, Handl... #include "caosdb/transaction_status.h" // for TransactionStatus #include <cstdint> // for uint64_t diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 366875d..7dd382a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,11 +31,11 @@ set(libcaosdb_SRC ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/transaction_handler.cpp ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/unary_rpc_handler.cpp ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/register_file_upload_handler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/Client.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/UploadRequestHandler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/DownloadRequestHandler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/FileWriter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/FileReader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/client.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/upload_request_handler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/download_request_handler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/file_writer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/caosdb/file_transmission/file_reader.cpp ) # pass variable to parent scope diff --git a/src/caosdb/file_transmission/Client.cpp b/src/caosdb/file_transmission/client.cpp similarity index 75% rename from src/caosdb/file_transmission/Client.cpp rename to src/caosdb/file_transmission/client.cpp index 9adabd6..fcb0bbd 100644 --- a/src/caosdb/file_transmission/Client.cpp +++ b/src/caosdb/file_transmission/client.cpp @@ -1,13 +1,13 @@ #include "caosdb/file_transmission/Client.h" -#include "caosdb/file_transmission/DownloadRequestHandler.h" // for DownloadReq... -#include "caosdb/file_transmission/UploadRequestHandler.h" // for UploadReque... -#include "caosdb/logging.h" // for CAOSDB_LOG_... -#include "caosdb/status_code.h" // for StatusCode -#include <boost/log/core/record.hpp> // for record -#include <boost/log/sources/record_ostream.hpp> // for basic_recor... -#include <boost/preprocessor/seq/limits/enum_256.hpp> // for BOOST_PP_SE... -#include <boost/preprocessor/seq/limits/size_256.hpp> // for BOOST_PP_SE... -#include <exception> // IWYU pragma: keep +#include "caosdb/file_transmission/download_request_handler.h" // for DownloadReq... +#include "caosdb/file_transmission/upload_request_handler.h" // for UploadReque... +#include "caosdb/logging.h" // for CAOSDB_LOG_... +#include "caosdb/status_code.h" // for StatusCode +#include <boost/log/core/record.hpp> // for record +#include <boost/log/sources/record_ostream.hpp> // for basic_recor... +#include <boost/preprocessor/seq/limits/enum_256.hpp> // for BOOST_PP_SE... +#include <boost/preprocessor/seq/limits/size_256.hpp> // for BOOST_PP_SE... +#include <exception> // IWYU pragma: keep // IWYU pragma: no_include <bits/exception.h> #include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQ... diff --git a/src/caosdb/file_transmission/DownloadRequestHandler.cpp b/src/caosdb/file_transmission/download_request_handler.cpp similarity index 98% rename from src/caosdb/file_transmission/DownloadRequestHandler.cpp rename to src/caosdb/file_transmission/download_request_handler.cpp index 87730fe..b0e44c3 100644 --- a/src/caosdb/file_transmission/DownloadRequestHandler.cpp +++ b/src/caosdb/file_transmission/download_request_handler.cpp @@ -1,4 +1,4 @@ -#include "caosdb/file_transmission/DownloadRequestHandler.h" +#include "caosdb/file_transmission/download_request_handler.h" #include "caosdb/exceptions.h" // for Exception #include "caosdb/logging.h" // for CAOSDB_LOG_TRACE #include "caosdb/protobuf_helper.h" // for get_arena diff --git a/src/caosdb/file_transmission/FileReader.cpp b/src/caosdb/file_transmission/file_reader.cpp similarity index 80% rename from src/caosdb/file_transmission/FileReader.cpp rename to src/caosdb/file_transmission/file_reader.cpp index 5124846..598cd99 100644 --- a/src/caosdb/file_transmission/FileReader.cpp +++ b/src/caosdb/file_transmission/file_reader.cpp @@ -1,8 +1,8 @@ -#include "caosdb/file_transmission/FileReader.h" -#include "caosdb/file_transmission/FileError.h" // for FileIOError, FileLockError -#include <boost/filesystem/path.hpp> // for path -#include <mutex> // for try_to_lock -#include <utility> // for move +#include "caosdb/file_transmission/file_reader.h" +#include "caosdb/file_transmission/file_error.h" // for FileIOError, FileLockError +#include <boost/filesystem/path.hpp> // for path +#include <mutex> // for try_to_lock +#include <utility> // for move namespace caosdb::transaction { diff --git a/src/caosdb/file_transmission/FileWriter.cpp b/src/caosdb/file_transmission/file_writer.cpp similarity index 75% rename from src/caosdb/file_transmission/FileWriter.cpp rename to src/caosdb/file_transmission/file_writer.cpp index 3d89c1c..a0db572 100644 --- a/src/caosdb/file_transmission/FileWriter.cpp +++ b/src/caosdb/file_transmission/file_writer.cpp @@ -1,8 +1,8 @@ -#include "caosdb/file_transmission/FileWriter.h" -#include "caosdb/file_transmission/FileError.h" // for FileIOError, FileLockError -#include <boost/filesystem/path.hpp> // for path -#include <mutex> // for try_to_lock -#include <utility> // for move +#include "caosdb/file_transmission/file_writer.h" +#include "caosdb/file_transmission/file_error.h" // for FileIOError, FileLockError +#include <boost/filesystem/path.hpp> // for path +#include <mutex> // for try_to_lock +#include <utility> // for move namespace caosdb::transaction { diff --git a/src/caosdb/file_transmission/UploadRequestHandler.cpp b/src/caosdb/file_transmission/upload_request_handler.cpp similarity index 98% rename from src/caosdb/file_transmission/UploadRequestHandler.cpp rename to src/caosdb/file_transmission/upload_request_handler.cpp index c96115d..32e6fa7 100644 --- a/src/caosdb/file_transmission/UploadRequestHandler.cpp +++ b/src/caosdb/file_transmission/upload_request_handler.cpp @@ -1,4 +1,4 @@ -#include "caosdb/file_transmission/UploadRequestHandler.h" +#include "caosdb/file_transmission/upload_request_handler.h" #include "caosdb/exceptions.h" // for Exception #include "caosdb/logging.h" // for CAOSDB_LOG_ERROR #include "caosdb/protobuf_helper.h" // for get_arena diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp index 377b3b0..3be26bd 100644 --- a/src/caosdb/transaction.cpp +++ b/src/caosdb/transaction.cpp @@ -22,6 +22,7 @@ #include "caosdb/entity/v1alpha1/main.pb.h" // for TransactionRe... #include "caosdb/file_transmission/Client.h" // for FileExchangeC... #include "caosdb/file_transmission/register_file_upload_handler.h" +#include "caosdb/file_transmission/upload_request_handler.h" // Uplo... #include "caosdb/logging.h" // for CAOSDB_LOG_FATAL #include "caosdb/protobuf_helper.h" // for get_arena #include "caosdb/status_code.h" // for StatusCode @@ -285,7 +286,6 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { CAOSDB_LOG_INFO(logger_name) << "Number of files to be uploaded: " << upload_files.size(); - // TODO(tf): Use Arena auto *registration_request = Arena::CreateMessage<RegisterFileUploadRequest>(GetArena()); auto *registration_response = @@ -302,15 +302,15 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { return StatusCode::EXECUTING; } - FileExchangeClient upload_client(file_service); - for (auto file_descriptor : upload_files) { + for (auto &file_descriptor : upload_files) { file_descriptor.file_transmission_id->set_registration_id( registration_response->registration_id()); CAOSDB_LOG_INFO(logger_name) << "Uploading " << file_descriptor.local_path; - auto file_upload_status = upload_client.upload(file_descriptor); - if (file_upload_status != StatusCode::SUCCESS) { - this->status = TransactionStatus::FILE_UPLOAD_ERROR(); + handler_ = std::make_unique<UploadRequestHandler>( + &handler_, file_service.get(), &completion_queue, file_descriptor); + this->status = ProcessCalls(); + if (this->status.GetCode() != StatusCode::SUCCESS) { return StatusCode::EXECUTING; } } diff --git a/test/test_file_transmission.cpp b/test/test_file_transmission.cpp index c5afd87..9c2bdd3 100644 --- a/test/test_file_transmission.cpp +++ b/test/test_file_transmission.cpp @@ -1,5 +1,5 @@ -#include "caosdb/file_transmission/FileWriter.h" -#include "caosdb/file_transmission/FileReader.h" +#include "caosdb/file_transmission/file_writer.h" +#include "caosdb/file_transmission/file_reader.h" #include <boost/filesystem/operations.hpp> // for exists, file_size, remove #include <boost/filesystem/path.hpp> // for path #include <boost/filesystem/path_traits.hpp> // for filesystem -- GitLab