Skip to content
Snippets Groups Projects

F async execute

Merged Timm Fitschen requested to merge f-async-execute into dev
5 files
+ 224
244
Compare changes
  • Side-by-side
  • Inline

Files

+ 10
97
@@ -25,27 +25,20 @@
@@ -25,27 +25,20 @@
#include "caosdb/authentication.h" // for Authenticator, PlainPassw...
#include "caosdb/authentication.h" // for Authenticator, PlainPassw...
#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 SinkConfiguration, Loggin...
#include "caosdb/utility.h" // for load_json_file
#include "caosdb/utility.h" // for load_json_file
#include <google/protobuf/arena.h> // for Arena
#include <google/protobuf/arena.h> // for Arena
#include <google/protobuf/extension_set.h> // for Arena
#include <google/protobuf/extension_set.h> // for Arena
#include <grpcpp/security/credentials.h> // for ChannelCredentials
#include <grpcpp/security/credentials.h> // for ChannelCredentials
#include <boost/json/object.hpp> // for object
#include <filesystem> // for path, exists
#include <boost/json/value.hpp> // for value
#include <iosfwd> // for ostream
#include <boost/json/value_ref.hpp> // for array, object
#include <memory> // for shared_ptr, unique_ptr
// IWYU pragma: no_include "boost/json/fwd.hpp"
#include <string> // for string
#include <filesystem> // for path, exists
#include <iosfwd> // for ostream
#include <memory> // for shared_ptr, unique_ptr
#include <string> // for string
namespace caosdb::configuration {
namespace caosdb::configuration {
using boost::json::array;
using boost::json::object;
using boost::json::value;
using caosdb::authentication::Authenticator;
using caosdb::authentication::Authenticator;
using caosdb::authentication::PlainPasswordAuthenticator;
using caosdb::authentication::PlainPasswordAuthenticator;
using caosdb::exceptions::ConfigurationError;
using caosdb::exceptions::ConfigurationError;
 
using caosdb::utility::JsonValue;
using caosdb::utility::load_json_file;
using caosdb::utility::load_json_file;
using google::protobuf::Arena;
using google::protobuf::Arena;
using grpc::ChannelCredentials;
using grpc::ChannelCredentials;
@@ -102,69 +95,6 @@ public:
@@ -102,69 +95,6 @@ public:
[[nodiscard]] auto ToString() const -> std::string override;
[[nodiscard]] auto ToString() const -> std::string override;
};
};
/**
* Helper class (no state, just member functions) which should only be used by
* the ConfigurationManager to initialize the logging framework from the stored
* configuration.
*/
class LoggingConfigurationHelper {
public:
friend class ConfigurationManager;
private:
auto ConvertLogLevel(const std::string &string_level) const -> int;
auto CreateConsoleSinkConfiguration(const object &from, const std::string &name, int level) const
-> std::shared_ptr<caosdb::logging::SinkConfiguration>;
auto CreateSyslogSinkConfiguration(const object &from, const std::string &name, int level) const
-> std::shared_ptr<caosdb::logging::SinkConfiguration>;
auto CreateFileSinkConfiguration(const object &from, const std::string &name, int level) const
-> std::shared_ptr<caosdb::logging::SinkConfiguration>;
auto CreateSinkConfiguration(const object &from, const std::string &name, int default_level) const
-> std::shared_ptr<caosdb::logging::SinkConfiguration>;
auto CreateLoggingConfiguration(const object &from) const
-> caosdb::logging::LoggingConfiguration;
};
/**
* Helper class (no state, just member functions) which should only be used by
* the ConfigurationManager to construct Connection instances from the stored
* configuration.
*/
class ConnectionConfigurationHelper {
public:
friend class ConfigurationManager;
private:
/**
* @param from - a single connection configuration.
*/
auto CreateCertificateProvider(const object &from) const -> std::unique_ptr<CertificateProvider>;
/**
* @param from - a single connection configuration.
*/
auto CreateAuthenticator(const object &from) const -> std::unique_ptr<Authenticator>;
/**
* @param from - a single connection configuration.
*/
auto CreateConnectionConfiguration(const bool tls, const std::string &host, const int port,
const CertificateProvider *certificate_provider,
const Authenticator *authenticator) const
-> std::unique_ptr<ConnectionConfiguration>;
/**
* @param from - a single connection configuration.
*/
auto IsTls(const object &from) const -> bool;
/**
* @param from - a single connection configuration.
*/
auto CreateConnectionConfiguration(const object &from) const
-> std::unique_ptr<ConnectionConfiguration>;
};
/**
/**
* Reads the configuration file and keeps the configuration. Singleton.
* Reads the configuration file and keeps the configuration. Singleton.
*
*
@@ -225,13 +155,12 @@ public:
@@ -225,13 +155,12 @@ public:
private:
private:
Arena arena;
Arena arena;
value json_configuration;
JsonValue json_configuration;
ConnectionConfigurationHelper connection_configuration_helper;
LoggingConfigurationHelper logging_configuration_helper;
inline ConfigurationManager(){
inline ConfigurationManager()
// InitializeDefaults();
: json_configuration(nullptr){
};
// InitializeDefaults();
 
};
/**
/**
* Initialize this ConfigurationManager with the defaults.
* Initialize this ConfigurationManager with the defaults.
@@ -242,22 +171,6 @@ private:
@@ -242,22 +171,6 @@ private:
*/
*/
auto InitializeDefaults() -> int;
auto InitializeDefaults() -> int;
/**
* Return a json object representing the current configuration.
*/
auto GetConfiguration() const -> const object &;
/**
* Return the connection configurations.
*/
auto GetConnections() const -> const object &;
/**
* Return the configuration for the connection with the given name (as a json
* object).
*/
auto GetConnection(const std::string &name) const -> const object &;
/**
/**
* Reset this ConfigurationManager.
* Reset this ConfigurationManager.
*
*
Loading