Skip to content
Snippets Groups Projects
Verified Commit e054766e authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: fix conan setup

parent ff427e9e
Branches
Tags
2 merge requests!33Release 0.1,!30Debug build
Pipeline #15727 failed
This commit is part of merge request !30. Comments created here will be created in the context of that merge request.
...@@ -14,10 +14,12 @@ class CaosdbConan(ConanFile): ...@@ -14,10 +14,12 @@ class CaosdbConan(ConanFile):
default_options = {"shared": False, "fPIC": True} default_options = {"shared": False, "fPIC": True}
generators = "cmake" generators = "cmake"
requires = [ requires = [
("boost/1.77.0"), ("boost/1.76.0"),
("gtest/1.11.0"),
("grpc/1.39.1"), ("grpc/1.39.1"),
] ]
build_requires = [
("gtest/1.11.0"),
]
exports = "*.cpp", "*.h", "*.cmake", "*CMakeLists.txt", "*.in", "*.proto", "*.c" exports = "*.cpp", "*.h", "*.cmake", "*CMakeLists.txt", "*.in", "*.proto", "*.c"
exports_sources = "src", "doc", "include", "test", "cmake", "proto" exports_sources = "src", "doc", "include", "test", "cmake", "proto"
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "caosdb/certificate_provider.h" // for CertificateProvider, path #include "caosdb/certificate_provider.h" // for CertificateProvider, path
#include "caosdb/exceptions.h" // for ConfigurationError #include "caosdb/exceptions.h" // for ConfigurationError
#include "caosdb/logging.h" // for CAOSDB_LOG_... #include "caosdb/logging.h" // for CAOSDB_LOG_...
#include "caosdb/protobuf_helper.h" // for reset_arena
#include "caosdb/utility.h" // for load_json_file #include "caosdb/utility.h" // for load_json_file
// IWYU pragma: no_include "boost/json/fwd.hpp" // IWYU pragma: no_include "boost/json/fwd.hpp"
#include <boost/filesystem/operations.hpp> // for exists #include <boost/filesystem/operations.hpp> // for exists
...@@ -32,8 +33,10 @@ ...@@ -32,8 +33,10 @@
#include <boost/json/object.hpp> // for object #include <boost/json/object.hpp> // for object
#include <boost/json/value.hpp> // for value #include <boost/json/value.hpp> // for value
#include <boost/json/value_ref.hpp> // IWYU pragma: keep #include <boost/json/value_ref.hpp> // IWYU pragma: keep
#include <google/protobuf/arena.h> // for Arena
#include <grpcpp/security/credentials.h> // for ChannelCredentials #include <grpcpp/security/credentials.h> // for ChannelCredentials
#include <iosfwd> // for ostream #include <iosfwd> // for ostream
#include <iostream>
#include <memory> // for unique_ptr, shared_ptr #include <memory> // for unique_ptr, shared_ptr
#include <string> // for string #include <string> // for string
...@@ -47,6 +50,7 @@ using caosdb::authentication::Authenticator; ...@@ -47,6 +50,7 @@ using caosdb::authentication::Authenticator;
using caosdb::authentication::PlainPasswordAuthenticator; using caosdb::authentication::PlainPasswordAuthenticator;
using caosdb::exceptions::ConfigurationError; using caosdb::exceptions::ConfigurationError;
using caosdb::utility::load_json_file; using caosdb::utility::load_json_file;
using google::protobuf::Arena;
using grpc::ChannelCredentials; using grpc::ChannelCredentials;
const std::string logger_name = "caosdb::configuration"; const std::string logger_name = "caosdb::configuration";
...@@ -218,7 +222,10 @@ public: ...@@ -218,7 +222,10 @@ public:
ConfigurationManager(ConfigurationManager const &) = delete; ConfigurationManager(ConfigurationManager const &) = delete;
void operator=(ConfigurationManager const &) = delete; void operator=(ConfigurationManager const &) = delete;
inline static auto GetArena() -> Arena * { return &GetInstance().arena; }
private: private:
Arena arena;
value json_configuration; value json_configuration;
ConnectionConfigurationHelper connection_configuration_helper; ConnectionConfigurationHelper connection_configuration_helper;
LoggingConfigurationHelper logging_configuration_helper; LoggingConfigurationHelper logging_configuration_helper;
......
...@@ -54,10 +54,11 @@ public: ...@@ -54,10 +54,11 @@ public:
* CaosDBConnection::GetVersionInfo() instead to get the version of the * CaosDBConnection::GetVersionInfo() instead to get the version of the
* server behind the given connection. * server behind the given connection.
*/ */
explicit inline VersionInfo(ProtoVersionInfo *info) : info(info) { explicit inline VersionInfo(ProtoVersionInfo *info)
if (this->info->GetArena() == nullptr) { : info(info){
caosdb::utility::get_arena()->Own(this->info); // if (this->info->GetArena() == nullptr) {
} // caosdb::utility::get_arena()->Own(this->info);
//}
}; };
[[nodiscard]] inline auto GetMajor() const -> int32_t { return this->info->major(); } [[nodiscard]] inline auto GetMajor() const -> int32_t { return this->info->major(); }
[[nodiscard]] inline auto GetMinor() const -> int32_t { return this->info->minor(); } [[nodiscard]] inline auto GetMinor() const -> int32_t { return this->info->minor(); }
......
...@@ -41,19 +41,14 @@ typedef boost::log::sources::severity_channel_logger_mt<int, std::string> boost_ ...@@ -41,19 +41,14 @@ typedef boost::log::sources::severity_channel_logger_mt<int, std::string> boost_
class logger { class logger {
public: public:
static auto destroy() -> void { static auto get() -> boost_logger_class & { return logger::GetInstance()._logger_instance; }
auto &instance = logger::GetInstance();
delete instance._logger_instance;
}
static auto get() -> boost_logger_class & { return *logger::GetInstance()._logger_instance; }
private: private:
logger() { this->_logger_instance = new boost_logger_class(); };
static logger &GetInstance() { static logger &GetInstance() {
static logger instance; static logger instance;
return instance; return instance;
} }
boost_logger_class *_logger_instance; boost_logger_class _logger_instance;
}; };
/** /**
......
...@@ -407,7 +407,7 @@ public: ...@@ -407,7 +407,7 @@ public:
* Instead, do Execute() or WaitForIt() and only call this method afterwards. * Instead, do Execute() or WaitForIt() and only call this method afterwards.
*/ */
[[nodiscard]] inline auto GetResultSet() const noexcept -> const ResultSet & { [[nodiscard]] inline auto GetResultSet() const noexcept -> const ResultSet & {
if (!this->result_set) { if (this->result_set == nullptr) {
CAOSDB_LOG_ERROR(logger_name) CAOSDB_LOG_ERROR(logger_name)
<< "GetResultSet was called before the transaction has terminated. This is a programming " << "GetResultSet was called before the transaction has terminated. This is a programming "
"error of the code which uses the transaction."; "error of the code which uses the transaction.";
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
#include <exception> // IWYU pragma: keep #include <exception> // IWYU pragma: keep
// IWYU pragma: no_include <bits/exception.h> // IWYU pragma: no_include <bits/exception.h>
#include <grpcpp/security/credentials.h> // for SslCredentials #include <grpcpp/security/credentials.h> // for SslCredentials
#include <iostream>
#include <iterator> // for next #include <iterator> // for next
#include <map> // for map #include <map> // for map
#include <stdexcept> // for out_of_range #include <stdexcept> // for out_of_range
......
...@@ -82,7 +82,7 @@ auto Connection::RetrieveVersionInfoNoExceptions() const noexcept -> Transaction ...@@ -82,7 +82,7 @@ auto Connection::RetrieveVersionInfoNoExceptions() const noexcept -> Transaction
error_message); error_message);
} }
} else { } else {
this->version_info = std::make_unique<VersionInfo>(response->release_version_info()); this->version_info = std::make_unique<VersionInfo>(response->mutable_version_info());
} }
return status; return status;
......
...@@ -128,22 +128,15 @@ void DownloadRequestHandler::handleNewCallState() { ...@@ -128,22 +128,15 @@ void DownloadRequestHandler::handleNewCallState() {
CAOSDB_LOG_TRACE(logger_name) << "Enter DownloadRequestHandler::handleNewCallState. local_path = " CAOSDB_LOG_TRACE(logger_name) << "Enter DownloadRequestHandler::handleNewCallState. local_path = "
<< file_descriptor_.local_path << file_descriptor_.local_path
<< ", download_id = " << file_descriptor_.file_transmission_id; << ", download_id = " << file_descriptor_.file_transmission_id;
CAOSDB_LOG_TRACE(logger_name) << "HERE 1";
fileWriter_ = std::make_unique<FileWriter>(file_descriptor_.local_path); fileWriter_ = std::make_unique<FileWriter>(file_descriptor_.local_path);
CAOSDB_LOG_TRACE(logger_name) << "HERE 2";
auto *tid = request_->mutable_file_transmission_id(); auto *tid = request_->mutable_file_transmission_id();
CAOSDB_LOG_TRACE(logger_name) << "HERE 3";
tid->CopyFrom(*(file_descriptor_.file_transmission_id)); tid->CopyFrom(*(file_descriptor_.file_transmission_id));
CAOSDB_LOG_TRACE(logger_name) << "HERE 4";
rpc_ = stub_->PrepareAsyncFileDownload(&ctx_, *request_, cq_); rpc_ = stub_->PrepareAsyncFileDownload(&ctx_, *request_, cq_);
CAOSDB_LOG_TRACE(logger_name) << "HERE 5";
transaction_status = TransactionStatus::EXECUTING(); transaction_status = TransactionStatus::EXECUTING();
CAOSDB_LOG_TRACE(logger_name) << "HERE 6";
state_ = CallState::SendingRequest; state_ = CallState::SendingRequest;
CAOSDB_LOG_TRACE(logger_name) << "HERE 7";
rpc_->StartCall(tag_); rpc_->StartCall(tag_);
CAOSDB_LOG_TRACE(logger_name) << "Leave DownloadRequestHandler::handleNewCallState"; CAOSDB_LOG_TRACE(logger_name) << "Leave DownloadRequestHandler::handleNewCallState";
} }
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
*/ */
#include "caosdb/logging.h" #include "caosdb/logging.h"
#include "caosdb/log_level.h" #include "caosdb/log_level.h"
#include "caosdb/protobuf_helper.h"
#include <boost/core/swap.hpp> // for swap #include <boost/core/swap.hpp> // for swap
#include <boost/iterator/iterator_facade.hpp> #include <boost/iterator/iterator_facade.hpp>
#include <boost/log/attributes/clock.hpp> #include <boost/log/attributes/clock.hpp>
...@@ -44,9 +45,6 @@ ...@@ -44,9 +45,6 @@
#include <utility> // for move #include <utility> // for move
#include <vector> #include <vector>
void __attribute__((constructor)) startup() {}
void __attribute__((destructor)) shutdown() { caosdb::logging::logger::destroy(); }
namespace caosdb::logging { namespace caosdb::logging {
LoggingConfiguration::LoggingConfiguration(int level) : LevelConfiguration(level) {} LoggingConfiguration::LoggingConfiguration(int level) : LevelConfiguration(level) {}
......
...@@ -19,16 +19,14 @@ ...@@ -19,16 +19,14 @@
* *
*/ */
#include "caosdb/protobuf_helper.h" #include "caosdb/protobuf_helper.h"
#include "caosdb/configuration.h"
#include <google/protobuf/arena.h> // for Arena #include <google/protobuf/arena.h> // for Arena
namespace caosdb::utility { namespace caosdb::utility {
using google::protobuf::Arena; using google::protobuf::Arena;
auto get_arena() -> Arena * { auto get_arena() -> Arena * { return caosdb::configuration::ConfigurationManager::GetArena(); }
static Arena arena;
return &arena;
}
auto reset_arena() -> void { get_arena()->Reset(); } auto reset_arena() -> void { get_arena()->Reset(); }
......
...@@ -251,7 +251,8 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { // NOLINT ...@@ -251,7 +251,8 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { // NOLINT
auto *entity_response = auto *entity_response =
sub_response.mutable_retrieve_response()->mutable_entity_response(); sub_response.mutable_retrieve_response()->mutable_entity_response();
auto entity_id = entity_response->entity().id(); auto entity_id = entity_response->entity().id();
download_files[entity_id].file_transmission_id = entity_response->release_download_id(); download_files[entity_id].file_transmission_id =
entity_response->unsafe_arena_release_download_id();
// TODO(tf) handle error // TODO(tf) handle error
} }
} }
......
...@@ -39,8 +39,6 @@ ...@@ -39,8 +39,6 @@
#include <utility> // for pair #include <utility> // for pair
namespace caosdb::entity { namespace caosdb::entity {
using ProtoEntity = caosdb::entity::v1alpha1::Entity;
using ProtoParent = caosdb::entity::v1alpha1::Parent;
using ProtoDataType = caosdb::entity::v1alpha1::DataType; using ProtoDataType = caosdb::entity::v1alpha1::DataType;
using ProtoAtomicDataType = caosdb::entity::v1alpha1::AtomicDataType; using ProtoAtomicDataType = caosdb::entity::v1alpha1::AtomicDataType;
...@@ -65,6 +63,7 @@ TEST(test_data_type, test_atomic) { ...@@ -65,6 +63,7 @@ TEST(test_data_type, test_atomic) {
EXPECT_TRUE(data_type.IsAtomic()); EXPECT_TRUE(data_type.IsAtomic());
EXPECT_EQ(data_type.GetAsAtomic(), map_el.first); EXPECT_EQ(data_type.GetAsAtomic(), map_el.first);
} }
caosdb::utility::reset_arena();
} }
TEST(test_data_type, test_reference) { TEST(test_data_type, test_reference) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment