| | |
| | | namespace qtl |
| | | { |
| | | |
| | | namespace mysql |
| | | { |
| | | |
| | | class database_pool : public qtl::database_pool<database> |
| | | { |
| | | public: |
| | | database_pool() : m_port(0) { } |
| | | virtual ~database_pool() { } |
| | | virtual database* new_database() throw() override |
| | | namespace mysql |
| | | { |
| | | database* db=new database; |
| | | if(!db->open(m_host.data(), m_user.data(), m_password.data(), m_database.data(), 0, m_port)) |
| | | { |
| | | delete db; |
| | | db=NULL; |
| | | } |
| | | else |
| | | { |
| | | db->charset_name("utf8"); |
| | | } |
| | | return db; |
| | | } |
| | | |
| | | protected: |
| | | std::string m_host; |
| | | unsigned short m_port; |
| | | std::string m_database; |
| | | std::string m_user; |
| | | std::string m_password; |
| | | }; |
| | | class database_pool : public qtl::database_pool<database> |
| | | { |
| | | public: |
| | | database_pool() : m_port(0) {} |
| | | virtual ~database_pool() {} |
| | | virtual database *new_database() throw() override |
| | | { |
| | | database *db = new database; |
| | | if (!db->open(m_host.data(), m_user.data(), m_password.data(), m_database.data(), 0, m_port)) |
| | | { |
| | | delete db; |
| | | db = NULL; |
| | | } |
| | | else |
| | | { |
| | | db->charset_name("utf8"); |
| | | } |
| | | return db; |
| | | } |
| | | |
| | | protected: |
| | | std::string m_host; |
| | | unsigned short m_port; |
| | | std::string m_database; |
| | | std::string m_user; |
| | | std::string m_password; |
| | | }; |
| | | |
| | | #if MARIADB_VERSION_ID >= 050500 |
| | | |
| | | template<typename EventLoop> |
| | | class async_pool : public qtl::async_pool<async_pool<EventLoop>, EventLoop, async_connection> |
| | | { |
| | | typedef qtl::async_pool<async_pool<EventLoop>, EventLoop, async_connection> base_class; |
| | | public: |
| | | async_pool(EventLoop& ev) : base_class(ev), m_port(0) { } |
| | | virtual ~async_pool() { } |
| | | template <typename EventLoop> |
| | | class async_pool : public qtl::async_pool<async_pool<EventLoop>, EventLoop, async_connection> |
| | | { |
| | | typedef qtl::async_pool<async_pool<EventLoop>, EventLoop, async_connection> base_class; |
| | | |
| | | template<typename Handler> |
| | | void new_connection(EventLoop& ev, Handler&& handler) throw() |
| | | { |
| | | async_connection* db = new async_connection; |
| | | db->open(ev, [this, handler, db](const mysql::error& e) mutable { |
| | | public: |
| | | async_pool(EventLoop &ev) : base_class(ev), m_port(0) {} |
| | | virtual ~async_pool() {} |
| | | |
| | | template <typename Handler> |
| | | void new_connection(EventLoop &ev, Handler &&handler) throw() |
| | | { |
| | | async_connection *db = new async_connection; |
| | | db->open(ev, [this, handler, db](const mysql::error &e) mutable |
| | | { |
| | | if (e) |
| | | { |
| | | delete db; |
| | |
| | | { |
| | | db->charset_name("utf8"); |
| | | } |
| | | handler(e, db); |
| | | }, m_host.data(), m_user.data(), m_password.data(), m_database.data(), 0, m_port); |
| | | handler(e, db); }, m_host.data(), m_user.data(), m_password.data(), m_database.data(), 0, m_port); |
| | | } |
| | | |
| | | protected: |
| | | std::string m_host; |
| | | unsigned short m_port; |
| | | std::string m_database; |
| | | std::string m_user; |
| | | std::string m_password; |
| | | }; |
| | | |
| | | #endif // MariaDB |
| | | |
| | | } |
| | | |
| | | protected: |
| | | std::string m_host; |
| | | unsigned short m_port; |
| | | std::string m_database; |
| | | std::string m_user; |
| | | std::string m_password; |
| | | }; |
| | | |
| | | #endif //MariaDB |
| | | |
| | | } |
| | | |
| | | } |
| | | |