diff --git a/include/linkahead/configuration.h b/include/linkahead/configuration.h index 06754cf5f2006e03774486325b15e41c2131d114..a25727db4713fca91e3468d66244bebfb8da4c8d 100644 --- a/include/linkahead/configuration.h +++ b/include/linkahead/configuration.h @@ -103,10 +103,8 @@ public: */ class ConfigurationManager { public: - static ConfigurationManager &GetInstance() { - static ConfigurationManager instance; - return instance; - }; + static ConfigurationManager &GetInstance(); + ; /** * See mReset. @@ -156,6 +154,7 @@ public: private: Arena arena; JsonValue json_configuration; + static ConfigurationManager mInstance; inline ConfigurationManager() : json_configuration(nullptr){ diff --git a/include/linkahead/connection.h b/include/linkahead/connection.h index 844f46a0e5f40488bed6f2ff045a9c2c218e8fe6..97fdcd97f28d5a5e0ab3fa8347afcede425d153d 100644 --- a/include/linkahead/connection.h +++ b/include/linkahead/connection.h @@ -170,6 +170,9 @@ class ConnectionManager { private: mutable std::map<std::string, std::shared_ptr<Connection>> connections; mutable std::string default_connection_name; + + static ConnectionManager mInstance; + inline ConnectionManager(){}; auto mHasConnection(const std::string &name) const -> bool; @@ -184,10 +187,7 @@ private: } public: - static ConnectionManager &GetInstance() { - static ConnectionManager instance; - return instance; - }; + static ConnectionManager &GetInstance(); inline static auto HasConnection(const std::string &name) -> bool { return ConnectionManager::GetInstance().mHasConnection(name); diff --git a/src/linkahead/configuration.cpp b/src/linkahead/configuration.cpp index 8db1f791960eaab01c17052a7f989fc7123aa726..1c60cfe4c9154a8e2077bd9f08bfdd348483f647 100644 --- a/src/linkahead/configuration.cpp +++ b/src/linkahead/configuration.cpp @@ -70,6 +70,9 @@ } namespace linkahead::configuration { + +ConfigurationManager ConfigurationManager::mInstance; + using boost::json::object; using boost::json::value; using grpc::InsecureChannelCredentials; @@ -424,6 +427,8 @@ auto ConfigurationManager::mGetDefaultConnectionName() const -> std::string { throw ConfigurationError("Could not determine the default connection."); } +ConfigurationManager &ConfigurationManager::GetInstance() { return mInstance; } + // TODO(tf) This has apparently a cognitive complexity of 34>25 (threshold). auto ConfigurationManager::InitializeDefaults() -> int { // NOLINT diff --git a/src/linkahead/connection.cpp b/src/linkahead/connection.cpp index 91d5a0c2208cd2c7cfd4b57743cfe1aca7ac257d..bff799b093741b81b90417446b3dc8ccf37916d4 100644 --- a/src/linkahead/connection.cpp +++ b/src/linkahead/connection.cpp @@ -66,6 +66,13 @@ using linkahead::info::VersionInfo; using linkahead::transaction::Transaction; using linkahead::transaction::TransactionStatus; + +ConnectionManager ConnectionManager::mInstance; + +ConnectionManager &ConnectionManager::GetInstance() { + return mInstance; +} + Connection::Connection(const ConnectionConfiguration &configuration) { const std::string target = configuration.GetHost() + ":" + std::to_string(configuration.GetPort()); diff --git a/test/test_clinkahead.cpp b/test/test_clinkahead.cpp index ef6c06459d92c9552c8b37f10984d459c7a4593c..25e83fe9da32a440ea2c675ee6b5c9bd08e9894a 100644 --- a/test/test_clinkahead.cpp +++ b/test/test_clinkahead.cpp @@ -44,8 +44,9 @@ protected: }; TEST_F(test_clinkahead, test_get_env_fallback) { - const char *const some_var = linkahead_utility_get_env_fallback("SOME_ENV_VAR", "fall-back"); - EXPECT_EQ("fall-back", some_var); + constexpr auto fall_back = "fall-back"; + const char *const some_var = linkahead_utility_get_env_fallback("SOME_ENV_VAR", fall_back); + EXPECT_EQ(fall_back, some_var); } TEST_F(test_clinkahead, test_other_client_error) { diff --git a/test/test_file_transmission.cpp b/test/test_file_transmission.cpp index b91918c094644f2432bb12ae6dd058b03b093101..b337a2450f49460a89092b66ad8d2ed9e8ff97b8 100644 --- a/test/test_file_transmission.cpp +++ b/test/test_file_transmission.cpp @@ -43,18 +43,22 @@ protected: TEST_F(test_file_transmission, test_file_writer_reader) { ASSERT_FALSE(fs::exists(test_file_name)); - FileWriter writer(test_file_name); - std::string buffer_out(1024, 'c'); - for (int i = 0; i < 8; i++) { - writer.write(buffer_out); - EXPECT_EQ(fs::file_size(test_file_name), 1024 * (i + 1)); + { + FileWriter writer(test_file_name); + std::string buffer_out(1024, 'c'); + for (int i = 0; i < 8; i++) { + writer.write(buffer_out); + } } - - FileReader reader(test_file_name); - std::string buffer_in(1024, '\0'); - for (int i = 0; i < 8; i++) { - reader.read(buffer_in); - EXPECT_EQ(buffer_in, std::string(1024, 'c')); + EXPECT_EQ(fs::file_size(test_file_name), 1024 * 8); + + { + FileReader reader(test_file_name); + std::string buffer_in(1024, '\0'); + for (int i = 0; i < 8; i++) { + reader.read(buffer_in); + EXPECT_EQ(buffer_in, std::string(1024, 'c')); + } } }