From 42d5c2c20484309acd1f8a4dafb2a6c279f3fa5d Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Thu, 30 Jun 2022 22:47:12 +0200 Subject: [PATCH] MAINT: clean up imports --- .../download_request_handler.h | 8 +-- .../register_file_upload_handler.h | 14 ++--- .../upload_request_handler.h | 8 +-- include/caosdb/transaction_handler.h | 14 ++--- include/caosdb/unary_rpc_handler.h | 10 ++-- .../download_request_handler.cpp | 32 +++++------ .../register_file_upload_handler.cpp | 4 +- .../upload_request_handler.cpp | 30 +++++----- src/caosdb/transaction.cpp | 57 +++++++++---------- src/caosdb/transaction_handler.cpp | 2 - src/caosdb/unary_rpc_handler.cpp | 12 ++-- 11 files changed, 90 insertions(+), 101 deletions(-) diff --git a/include/caosdb/file_transmission/download_request_handler.h b/include/caosdb/file_transmission/download_request_handler.h index 965db64..9c82b23 100644 --- a/include/caosdb/file_transmission/download_request_handler.h +++ b/include/caosdb/file_transmission/download_request_handler.h @@ -55,10 +55,10 @@ #include "caosdb/file_transmission/file_writer.h" // for FileWriter #include "caosdb/handler_interface.h" // for HandlerTag, Handl... #include <cstdint> // for uint64_t -#include <grpcpp/impl/codegen/async_stream.h> // for ClientAsyncReader -#include <grpcpp/impl/codegen/client_context.h> // for ClientContext -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue -#include <grpcpp/impl/codegen/status.h> // for Status +#include <grpcpp/client_context.h> // for ClientContext +#include <grpcpp/completion_queue.h> // for CompletionQueue +#include <grpcpp/support/async_stream.h> // for ClientAsyncReader +#include <grpcpp/support/status.h> // for Status #include <memory> // for unique_ptr namespace caosdb::transaction { diff --git a/include/caosdb/file_transmission/register_file_upload_handler.h b/include/caosdb/file_transmission/register_file_upload_handler.h index 37df2db..37cc6cf 100644 --- a/include/caosdb/file_transmission/register_file_upload_handler.h +++ b/include/caosdb/file_transmission/register_file_upload_handler.h @@ -49,13 +49,13 @@ #ifndef CAOSDB_FILE_TRANSMISSION_REGISTER_FILE_UPLOAD_H #define CAOSDB_FILE_TRANSMISSION_REGISTER_FILE_UPLOAD_H -#include "caosdb/entity/v1/main.grpc.pb.h" // for FileTransmissionS... -#include "caosdb/entity/v1/main.pb.h" // for FileDownloadResponse -#include "caosdb/handler_interface.h" // for HandlerTag, Handl... -#include "caosdb/unary_rpc_handler.h" -#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRespons... -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue -#include <memory> // for unique_ptr +#include "caosdb/entity/v1/main.grpc.pb.h" // for FileTransmissionS... +#include "caosdb/entity/v1/main.pb.h" // for FileDownloadResponse +#include "caosdb/handler_interface.h" // for HandlerTag, Handl... +#include "caosdb/unary_rpc_handler.h" // for UnaryRpcHandler +#include <grpcpp/completion_queue.h> // for CompletionQueue +#include <grpcpp/support/async_unary_call.h> // for ClientAsyncResponseReader +#include <memory> // for unique_ptr namespace caosdb::transaction { diff --git a/include/caosdb/file_transmission/upload_request_handler.h b/include/caosdb/file_transmission/upload_request_handler.h index 099e39e..f9d6aab 100644 --- a/include/caosdb/file_transmission/upload_request_handler.h +++ b/include/caosdb/file_transmission/upload_request_handler.h @@ -55,10 +55,10 @@ #include "caosdb/file_transmission/file_reader.h" // for FileReader #include "caosdb/handler_interface.h" // for HandlerTag, Handl... #include <cstdint> // for uint64_t -#include <grpcpp/impl/codegen/async_stream.h> // for ClientAsyncWriter -#include <grpcpp/impl/codegen/client_context.h> // for ClientContext -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue -#include <grpcpp/impl/codegen/status.h> // for Status +#include <grpcpp/client_context.h> // for ClientContext +#include <grpcpp/completion_queue.h> // for CompletionQueue +#include <grpcpp/support/async_stream.h> // for ClientAsyncReader +#include <grpcpp/support/status.h> // for Status #include <memory> // for unique_ptr namespace caosdb::transaction { diff --git a/include/caosdb/transaction_handler.h b/include/caosdb/transaction_handler.h index 6fa386b..3f9fc81 100644 --- a/include/caosdb/transaction_handler.h +++ b/include/caosdb/transaction_handler.h @@ -1,11 +1,11 @@ #pragma once -#include "caosdb/entity/v1/main.grpc.pb.h" // for FileTransmissionS... -#include "caosdb/entity/v1/main.pb.h" // for FileDownloadResponse -#include "caosdb/handler_interface.h" // for HandlerTag -#include "caosdb/unary_rpc_handler.h" // for HandlerTag, Handl... -#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRespons... -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue -#include <memory> // for unique_ptr +#include "caosdb/entity/v1/main.grpc.pb.h" // for FileTransmissionS... +#include "caosdb/entity/v1/main.pb.h" // for FileDownloadResponse +#include "caosdb/handler_interface.h" // for HandlerTag +#include "caosdb/unary_rpc_handler.h" // for HandlerTag, Handl... +#include <grpcpp/completion_queue.h> // for CompletionQueue +#include <grpcpp/support/async_unary_call.h> // for ClientAsyncResponseReader +#include <memory> // for unique_ptr namespace caosdb::transaction { diff --git a/include/caosdb/unary_rpc_handler.h b/include/caosdb/unary_rpc_handler.h index a505a87..06b9457 100644 --- a/include/caosdb/unary_rpc_handler.h +++ b/include/caosdb/unary_rpc_handler.h @@ -49,11 +49,11 @@ #ifndef CAOSDB_UNARY_RPC_HANDLER_H #define CAOSDB_UNARY_RPC_HANDLER_H -#include "caosdb/handler_interface.h" // for HandlerTag, Handl... -#include "caosdb/transaction_status.h" // for TransactionStatus -#include <grpcpp/impl/codegen/client_context.h> // for ClientContext -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue -#include <grpcpp/impl/codegen/status.h> // for Status +#include "caosdb/handler_interface.h" // for HandlerTag, Handl... +#include "caosdb/transaction_status.h" // for TransactionStatus +#include <grpcpp/client_context.h> // for ClientContext +#include <grpcpp/completion_queue.h> // for CompletionQueue +#include <grpcpp/support/status.h> // for Status namespace caosdb::transaction { diff --git a/src/caosdb/file_transmission/download_request_handler.cpp b/src/caosdb/file_transmission/download_request_handler.cpp index e079d28..821ed79 100644 --- a/src/caosdb/file_transmission/download_request_handler.cpp +++ b/src/caosdb/file_transmission/download_request_handler.cpp @@ -47,23 +47,23 @@ * > DEALINGS IN THE SOFTWARE. */ #include "caosdb/file_transmission/download_request_handler.h" -#include "caosdb/logging.h" // for CAOSDB_LOG_TRACE -#include "caosdb/protobuf_helper.h" // for get_arena -#include "caosdb/status_code.h" // for GENERIC_RPC_E... -#include "caosdb/transaction_status.h" // for TransactionStatus -#include <exception> // IWYU pragma: keep +#include "caosdb/logging.h" // for CAOSDB_LOG_TRACE +#include "caosdb/protobuf_helper.h" // for get_arena +#include "caosdb/status_code.h" // for GENERIC_RPC_E... +#include "caosdb/transaction_status.h" // for TransactionStatus +#include <exception> // IWYU pragma: keep +#include <filesystem> // for operator<<, path +#include <google/protobuf/arena.h> // for Arena +#include <grpcpp/client_context.h> // for ClientContext +#include <grpcpp/completion_queue.h> // for CompletionQueue +#include <grpcpp/support/async_stream.h> // for ClientAsyncReader +#include <grpcpp/support/status.h> // for Status +#include <grpcpp/support/status_code_enum.h> // for OK +#include <stdexcept> // for runtime_error +#include <string> // for string, opera... +#include <utility> // for move // IWYU pragma: no_include <bits/exception.h> -#include <filesystem> // for operator<<, path -#include <google/protobuf/arena.h> // for Arena -#include <grpcpp/impl/codegen/async_stream.h> // for ClientAsyncRe... -#include <grpcpp/impl/codegen/client_context.h> // for ClientContext -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue -#include <grpcpp/impl/codegen/status.h> // for Status -#include <grpcpp/impl/codegen/status_code_enum.h> // for OK, UNAUTHENT... -#include <stdexcept> // for runtime_error -#include <string> // for string, opera... -#include <utility> // for move - +// namespace caosdb::transaction { using caosdb::StatusCode; using caosdb::utility::get_arena; diff --git a/src/caosdb/file_transmission/register_file_upload_handler.cpp b/src/caosdb/file_transmission/register_file_upload_handler.cpp index 9460d18..3a47715 100644 --- a/src/caosdb/file_transmission/register_file_upload_handler.cpp +++ b/src/caosdb/file_transmission/register_file_upload_handler.cpp @@ -47,9 +47,7 @@ * > DEALINGS IN THE SOFTWARE. */ #include "caosdb/file_transmission/register_file_upload_handler.h" -#include "caosdb/logging.h" // for CAOSDB_LOG_TRACE -#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRes... -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue +#include "caosdb/logging.h" // for CAOSDB_LOG_TRACE namespace caosdb::transaction { diff --git a/src/caosdb/file_transmission/upload_request_handler.cpp b/src/caosdb/file_transmission/upload_request_handler.cpp index e4fb985..32bb813 100644 --- a/src/caosdb/file_transmission/upload_request_handler.cpp +++ b/src/caosdb/file_transmission/upload_request_handler.cpp @@ -47,24 +47,20 @@ * > DEALINGS IN THE SOFTWARE. */ #include "caosdb/file_transmission/upload_request_handler.h" -#include "caosdb/logging.h" // for CAOSDB_LOG_ERROR -#include "caosdb/protobuf_helper.h" // for get_arena -#include "caosdb/status_code.h" // for GENERIC_RPC_E... -#include "caosdb/transaction_status.h" // for TransactionStatus -#include <algorithm> // for min -#include <cstdint> // for uint64_t -#include <exception> // IWYU pragma: keep +#include "caosdb/logging.h" // for CAOSDB_LOG_ERROR +#include "caosdb/protobuf_helper.h" // for get_arena +#include "caosdb/status_code.h" // for GENERIC_RPC_E... +#include "caosdb/transaction_status.h" // for TransactionStatus +#include <algorithm> // for min +#include <cstdint> // for uint64_t +#include <exception> // IWYU pragma: keep +#include <filesystem> // for operator<<, path +#include <google/protobuf/arena.h> // for Arena +#include <grpcpp/impl/codegen/call_op_set.h> // for WriteOptions +#include <grpcpp/support/status_code_enum.h> // for OK +#include <string> // for basic_string +#include <utility> // for move // IWYU pragma: no_include <bits/exception.h> -#include <filesystem> // for operator<<, path -#include <google/protobuf/arena.h> // for Arena -#include <grpcpp/impl/codegen/async_stream.h> // for ClientAsyncWr... -#include <grpcpp/impl/codegen/call_op_set.h> // for WriteOptions -#include <grpcpp/impl/codegen/client_context.h> // for ClientContext -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue -#include <grpcpp/impl/codegen/status.h> // for Status -#include <grpcpp/impl/codegen/status_code_enum.h> // for OK, UNAUTHENT... -#include <string> // for basic_string -#include <utility> // for move namespace caosdb::transaction { using caosdb::StatusCode; diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp index 8d1897f..c75fdeb 100644 --- a/src/caosdb/transaction.cpp +++ b/src/caosdb/transaction.cpp @@ -28,7 +28,6 @@ #include "caosdb/status_code.h" // for StatusCode #include "caosdb/transaction_handler.h" // for EntityTransactionHandler #include <algorithm> // for max -#include <chrono> // for chrono_literals #include <exception> // IWYU pragma: keep #include <filesystem> // for operator<<, path #include <future> // for async, future @@ -38,7 +37,6 @@ #include <memory> // for unique_ptr #include <random> // for mt19937, rand... #include <system_error> // for std::system_error -#include <thread> // for sleep #include <utility> // for move, pair // IWYU pragma: no_include <bits/exception.h> // IWYU pragma: no_include <cxxabi.h> @@ -423,14 +421,17 @@ auto Transaction::WaitForIt() const noexcept -> TransactionStatus { return this->status; } -// NOLINTNEXTLINE auto Transaction::ProcessCalls() -> TransactionStatus { - CAOSDB_LOG_TRACE_ENTER_AND_LEAVE(logger_name, "Transaction::ProcessCalls()") - if (this->status.GetCode() != StatusCode::EXECUTING) { - CAOSDB_LOG_ERROR(logger_name) - << "Transaction::ProcessCalls() was called, TransactionStatus was: " - << std::to_string(this->status.GetCode()) << " - " << this->status.GetDescription(); - return status; + CAOSDB_LOG_TRACE_ENTER_AND_LEAVE(logger_name, "Transaction::ProcessCalls()") { + TRANSACTION_SYNCRONIZED_BLOCK + if (this->status.GetCode() != StatusCode::EXECUTING) { + CAOSDB_LOG_ERROR(logger_name) + << "Transaction::ProcessCalls() was called, TransactionStatus was: " + << std::to_string(this->status.GetCode()) << " - " << this->status.GetDescription(); + return status; + } + + handler_->Start(); } gpr_timespec deadline; @@ -439,7 +440,6 @@ auto Transaction::ProcessCalls() -> TransactionStatus { deadline.clock_type = gpr_clock_type::GPR_TIMESPAN; TransactionStatus result = TransactionStatus::EXECUTING(); - handler_->Start(); void *tag = nullptr; bool ok = false; @@ -486,29 +486,28 @@ Transaction::~Transaction() { void Transaction::Cancel() { CAOSDB_LOG_TRACE_ENTER_AND_LEAVE(logger_name, "Transaction::Cancel()") - TRANSACTION_SYNCRONIZED_BLOCK - - if (this->status.GetCode() > 0) { - // Prevent canceling before the queue even started. - // Temporary fix for a bug in GRPC. - // Fix is in the making: - // https://github.com/grpc/grpc/pull/30004 - using namespace std::chrono_literals; - std::this_thread::sleep_for(5ms); + if (this->status.GetCode() == StatusCode::CANCELLED) { + return; } - this->status = TransactionStatus::CANCELLED(); - if (handler_ != nullptr) { - handler_->Cancel(); - } + { - completion_queue.Shutdown(); + TRANSACTION_SYNCRONIZED_BLOCK - // drain the queue - void *ignoredTag = nullptr; - bool ok = false; - while (completion_queue.Next(&ignoredTag, &ok)) { - ; + if (handler_ != nullptr) { + handler_->Cancel(); + } + + this->status = TransactionStatus::CANCELLED(); + + completion_queue.Shutdown(); + + // drain the queue + void *ignoredTag = nullptr; + bool ok = false; + while (completion_queue.Next(&ignoredTag, &ok)) { + ; + } } if (transaction_future.valid()) { diff --git a/src/caosdb/transaction_handler.cpp b/src/caosdb/transaction_handler.cpp index cbcbf76..ef4897d 100644 --- a/src/caosdb/transaction_handler.cpp +++ b/src/caosdb/transaction_handler.cpp @@ -2,8 +2,6 @@ #include "caosdb/logging.h" // for CAOSDB_LOG_TRACE #include <exception> // IWYU pragma: keep // IWYU pragma: no_include <bits/exception.h> -#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRes... -#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue namespace caosdb::transaction { diff --git a/src/caosdb/unary_rpc_handler.cpp b/src/caosdb/unary_rpc_handler.cpp index 6770cae..06afc12 100644 --- a/src/caosdb/unary_rpc_handler.cpp +++ b/src/caosdb/unary_rpc_handler.cpp @@ -47,14 +47,12 @@ * > DEALINGS IN THE SOFTWARE. */ #include "caosdb/unary_rpc_handler.h" -#include "caosdb/logging.h" // for CAOSDB_LOG_TRACE -#include "caosdb/status_code.h" // for GENERIC_RPC_E... +#include "caosdb/logging.h" // for CAOSDB_LOG_TRACE +#include "caosdb/status_code.h" // for GENERIC_RPC_E... +#include <exception> // IWYU pragma: keep +#include <grpcpp/support/status_code_enum.h> // for OK +#include <string> // for string, opera... // IWYU pragma: no_include <bits/exception.h> -#include <exception> // IWYU pragma: keep -#include <grpcpp/impl/codegen/client_context.h> // for ClientContext -#include <grpcpp/impl/codegen/status.h> // for Status -#include <grpcpp/impl/codegen/status_code_enum.h> // for OK, UNAUTHENT... -#include <string> // for string, opera... namespace caosdb::transaction { -- GitLab