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..aca0966bf4f98d39bd1671ca941e458f4faf9f9b 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 instance; + 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..f8074ba8c5bfa8c0d45976c320c50271d0fd6397 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."); } +inline 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..373b3674c4230df7a4077c810aaa85a8e8a7d003 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::instance; + +ConnectionManager &ConnectionManager::GetInstance() { + return instance; +} + Connection::Connection(const ConnectionConfiguration &configuration) { const std::string target = configuration.GetHost() + ":" + std::to_string(configuration.GetPort());