diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 4393d3628cf63743b0191857b7f25b1329b6297c..62154f7c6f8f8d42aa478099c63ba8220bb60e0a 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 a59f9067605ac15aa01f569b8cc10ccadd6e7fef..e6e8f9f4e9aeb53e87766b387b0e6107582e8868 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 4ddca922cf5304239086840cb268b1205b505bb2..9c89f833d6cbca0cc444b004874db04563bca97a 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 0142d723910d361bee905c76c28d2157c7aebdb6..114918c76d7cda3d713633f0581101ddafca0e8b 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 8ee96c8a2875162bbbb615fdb2d30a2e47f82370..0bfd45581ef9eabbd6ce90dcb4604130225102b6 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 366875d669b57c4df3942aec5fa4658873754a86..7dd382a400699b052bf0edf04948532e1ab410cc 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 9adabd60806537c35ac882fa601723a2cad37464..fcb0bbda5d0b87b57629acf2631dab236e4135dd 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 87730febcf8589f30639123a18a65d60df05de90..b0e44c3e60bd49ef64db2fcf64be8af6c00c9b5e 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 5124846c5f993fa3311c72f3445f53ea5482bba7..598cd99866c15e3fd2779329c625cdfb47742859 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 3d89c1c6f2343ca5a39a167ad2dc88ff5a4e3aa2..a0db572e5cc980fe4341be741e276f80e116fe51 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 c96115d29215c1189833fe1b774d48070c1391c3..32e6fa792ea930dba2fea13a2c0ea891307a4839 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 377b3b0febaec8086cc385aa6d1b815bb49fa335..3be26bd8e09894a5555703a4048979f231845760 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 c5afd8741d9803a9899a229c12d53f71a266317e..9c2bdd39b6292a4318395a4e323f03082aeb308c 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