diff --git a/libs/libmysqlxx/CMakeLists.txt b/libs/libmysqlxx/CMakeLists.txt index 890978dfbc690ef5586f99c3806d5447827c9545..e0cc3d4c5b2fd5a77f54e5e02a40ae85a3c141bb 100644 --- a/libs/libmysqlxx/CMakeLists.txt +++ b/libs/libmysqlxx/CMakeLists.txt @@ -1,10 +1,13 @@ add_library (mysqlxx src/Connection.cpp + src/Exception.cpp src/Query.cpp src/ResultBase.cpp src/StoreQueryResult.cpp src/UseQueryResult.cpp + src/Row.cpp src/Value.cpp + src/Pool.cpp src/PoolWithFailover.cpp include/mysqlxx/Connection.h diff --git a/libs/libmysqlxx/include/mysqlxx/Pool.h b/libs/libmysqlxx/include/mysqlxx/Pool.h index c937ad89caa5064c4f37741e7b0e877598a19dc3..c90561b971fc7dcd12ad59681acf8d88cb2362f6 100644 --- a/libs/libmysqlxx/include/mysqlxx/Pool.h +++ b/libs/libmysqlxx/include/mysqlxx/Pool.h @@ -172,10 +172,8 @@ public: unsigned default_connections_ = MYSQLXX_POOL_DEFAULT_START_CONNECTIONS, unsigned max_connections_ = MYSQLXX_POOL_DEFAULT_MAX_CONNECTIONS, const char * parent_config_name_ = nullptr) - : Pool{ - Poco::Util::Application::instance().config(), config_name, - default_connections_, max_connections_, parent_config_name_ - } + : Pool{Poco::Util::Application::instance().config(), config_name, + default_connections_, max_connections_, parent_config_name_} {} /** @@ -186,39 +184,7 @@ public: Pool(const Poco::Util::AbstractConfiguration & cfg, const std::string & config_name, unsigned default_connections_ = MYSQLXX_POOL_DEFAULT_START_CONNECTIONS, unsigned max_connections_ = MYSQLXX_POOL_DEFAULT_MAX_CONNECTIONS, - const char * parent_config_name_ = nullptr) - : default_connections(default_connections_), max_connections(max_connections_) - { - server = cfg.getString(config_name + ".host"); - - if (parent_config_name_) - { - const std::string parent_config_name(parent_config_name_); - db = cfg.getString(config_name + ".db", cfg.getString(parent_config_name + ".db", "")); - user = cfg.has(config_name + ".user") ? - cfg.getString(config_name + ".user") : cfg.getString(parent_config_name + ".user"); - password = cfg.has(config_name + ".password") ? - cfg.getString(config_name + ".password") : cfg.getString(parent_config_name + ".password"); - port = cfg.has(config_name + ".port") ? cfg.getInt(config_name + ".port") : - cfg.getInt(parent_config_name + ".port"); - } - else - { - db = cfg.getString(config_name + ".db", ""); - user = cfg.getString(config_name + ".user"); - password = cfg.getString(config_name + ".password"); - port = cfg.getInt(config_name + ".port"); - } - - connect_timeout = cfg.getInt(config_name + ".connect_timeout", - cfg.getInt("mysql_connect_timeout", - MYSQLXX_DEFAULT_TIMEOUT)); - - rw_timeout = - cfg.getInt(config_name + ".rw_timeout", - cfg.getInt("mysql_rw_timeout", - MYSQLXX_DEFAULT_RW_TIMEOUT)); - } + const char * parent_config_name_ = nullptr); /** * @param db_ Имя БД diff --git a/libs/libmysqlxx/src/Pool.cpp b/libs/libmysqlxx/src/Pool.cpp index e67dbf2b36a78257e5a85ae41ac17ac3403d5ec1..4640a825ccf6fcdbcdc6d5849e758b38be11ed09 100644 --- a/libs/libmysqlxx/src/Pool.cpp +++ b/libs/libmysqlxx/src/Pool.cpp @@ -23,6 +23,46 @@ void Pool::Entry::decrementRefCount() } +Pool::Pool(const Poco::Util::AbstractConfiguration & cfg, const std::string & config_name, + unsigned default_connections_, unsigned max_connections_, + const char * parent_config_name_) + : default_connections(default_connections_), max_connections(max_connections_) +{ + server = cfg.getString(config_name + ".host"); + + if (parent_config_name_) + { + const std::string parent_config_name(parent_config_name_); + db = cfg.getString(config_name + ".db", cfg.getString(parent_config_name + ".db", "")); + user = cfg.has(config_name + ".user") + ? cfg.getString(config_name + ".user") + : cfg.getString(parent_config_name + ".user"); + password = cfg.has(config_name + ".password") + ? cfg.getString(config_name + ".password") + : cfg.getString(parent_config_name + ".password"); + port = cfg.has(config_name + ".port") + ? cfg.getInt(config_name + ".port") + : cfg.getInt(parent_config_name + ".port"); + } + else + { + db = cfg.getString(config_name + ".db", ""); + user = cfg.getString(config_name + ".user"); + password = cfg.getString(config_name + ".password"); + port = cfg.getInt(config_name + ".port"); + } + + connect_timeout = cfg.getInt(config_name + ".connect_timeout", + cfg.getInt("mysql_connect_timeout", + MYSQLXX_DEFAULT_TIMEOUT)); + + rw_timeout = + cfg.getInt(config_name + ".rw_timeout", + cfg.getInt("mysql_rw_timeout", + MYSQLXX_DEFAULT_RW_TIMEOUT)); +} + + Pool::~Pool() { Poco::ScopedLock locker(lock); @@ -102,7 +142,7 @@ void Pool::initialize() } -Connection * Pool::allocConnection(bool dont_throw_if_failed_first_time) +Pool::Connection * Pool::allocConnection(bool dont_throw_if_failed_first_time) { Poco::Util::Application & app = Poco::Util::Application::instance();