From c81618066a1993d8450afa91dfe5078f3923b221 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Thu, 5 Aug 2021 10:39:51 +0200 Subject: [PATCH] Moved around some code --- CMakeLists.txt | 2 +- include/caosdb/transaction.h | 29 ++++------------------------- src/caosdb/configuration.cpp | 11 ++++++----- src/caosdb/transaction.cpp | 25 ++++++++++++++++++++++++- 4 files changed, 35 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5efa13e..2f454fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,7 +299,7 @@ if(_LINTING) else() message(STATUS "clang-tidy: ${clang_tidy}") set(_CMAKE_CXX_CLANG_TIDY_CHECKS - "--checks=*,-fuchsia-*,-llvmlibc-*,-readability-convert-member-functions-to-static,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-hicpp-no-array-decay,-llvm-else-after-return,-readability-else-after-return,-modernize-use-trailing-return-type") + "--checks=*,-fuchsia-*,-llvmlibc-*,-readability-convert-member-functions-to-static,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-hicpp-no-array-decay,-llvm-else-after-return,-readability-else-after-return,-modernize-use-trailing-return-type,-bugprone-branch-clone") set(_CMAKE_C_CLANG_TIDY_CHECKS "${_CMAKE_CXX_CLANG_TIDY_CHECKS}") set(_CMAKE_CXX_CLANG_TIDY "${clang_tidy}" "--header-filter=caosdb/.*[^\(\.pb\.h\)]$" diff --git a/include/caosdb/transaction.h b/include/caosdb/transaction.h index 653dcf7..fbbd081 100644 --- a/include/caosdb/transaction.h +++ b/include/caosdb/transaction.h @@ -33,6 +33,7 @@ #include "google/protobuf/util/json_util.h" // for MessageToJsonString, Jso... #include <stdexcept> #include <iterator> +// IWYU pragma: no_include <ext/alloc_traits.h> #include <memory> // for shared_ptr, unique_ptr #include <string> // for string #include <vector> // for vector @@ -119,6 +120,8 @@ using caosdb::transaction::TransactionStatus; using WrappedResponseCase = caosdb::entity::v1alpha1::TransactionResponse::WrappedResponseCase; +class Transaction; + static const std::string logger_name = "caosdb::transaction"; class ResultSet { @@ -131,31 +134,7 @@ public: class MultiResultSet : public ResultSet { public: ~MultiResultSet() = default; - explicit inline MultiResultSet(MultiTransactionResponse *response) { - auto responses = response->mutable_responses(); - Entity *entity = nullptr; - for (auto sub_response : *responses) { - switch (sub_response.wrapped_response_case()) { - case WrappedResponseCase::kRetrieveResponse: - entity = new Entity( - sub_response.mutable_retrieve_response()->release_entity()); - break; - case WrappedResponseCase::kInsertResponse: - - entity = new Entity(sub_response.release_insert_response()); - break; - case WrappedResponseCase::kDeleteResponse: - entity = new Entity(sub_response.release_delete_response()); - break; - default: - // TODO(tf) Updates - break; - } - if (entity) { - this->entities.push_back(std::unique_ptr<Entity>(entity)); - } - } - } + explicit MultiResultSet(MultiTransactionResponse *response); [[nodiscard]] inline auto Size() const noexcept -> int override { return this->entities.size(); } diff --git a/src/caosdb/configuration.cpp b/src/caosdb/configuration.cpp index ffa8604..76c4372 100644 --- a/src/caosdb/configuration.cpp +++ b/src/caosdb/configuration.cpp @@ -39,11 +39,12 @@ #include <cstdlib> // for getenv #include <cstring> // for strcmp #include <exception> // IWYU pragma: keep -#include <grpcpp/security/credentials.h> // for SslCredentials -#include <iterator> // for next -#include <map> // for map -#include <stdexcept> // for out_of_range -#include <string> // for string, operator+ +// IWYU pragma: no_include <bits/exception.h> +#include <grpcpp/security/credentials.h> // for SslCredentials +#include <iterator> // for next +#include <map> // for map +#include <stdexcept> // for out_of_range +#include <string> // for string, operator+ namespace caosdb::configuration { using boost::filesystem::exists; diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp index e900560..d0b9025 100644 --- a/src/caosdb/transaction.cpp +++ b/src/caosdb/transaction.cpp @@ -90,6 +90,29 @@ using grpc::ClientAsyncResponseReader; using ProtoEntity = caosdb::entity::v1alpha1::Entity; using grpc::CompletionQueue; +MultiResultSet::MultiResultSet(MultiTransactionResponse *response) { + auto *responses = response->mutable_responses(); + for (auto sub_response : *responses) { + switch (sub_response.wrapped_response_case()) { + case WrappedResponseCase::kRetrieveResponse: + this->entities.push_back(std::make_unique<Entity>( + sub_response.mutable_retrieve_response()->release_entity())); + break; + case WrappedResponseCase::kInsertResponse: + this->entities.push_back( + std::make_unique<Entity>(sub_response.release_insert_response())); + break; + case WrappedResponseCase::kDeleteResponse: + this->entities.push_back( + std::make_unique<Entity>(sub_response.release_insert_response())); + break; + default: + // TODO(tf) Updates + break; + } + } +} + [[nodiscard]] auto UniqueResult::GetEntity() const -> const Entity & { const Entity *result = this->entity.get(); return *result; @@ -239,7 +262,7 @@ auto Transaction::WaitForIt() const noexcept -> TransactionStatus { this->result_set = std::make_unique<UniqueResult>(deletedIdResponse); } break; default: - // TODO(tf) + // TODO(tf) Error and Update break; } } else { -- GitLab