znone
2020-12-02 50457f28fa7567b81ccf6a423e09312d5587cfbc
include/qtl_odbc_pool.hpp
@@ -39,6 +39,37 @@
   environment m_env;
};
#ifdef QTL_ODBC_ENABLE_ASYNC_MODE
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) { }
   virtual ~async_pool() { }
   template<typename Handler>
   void new_connection(EventLoop& ev, Handler&& handler) throw()
   {
      async_connection* db = new async_connection(env);
      db->open(ev, [this, handler, db](const mysql::error& e) mutable {
         if (e)
         {
            delete db;
            db = nullptr;
         }
         handler(e, db);
      }, m_connection);
   }
protected:
   std::string m_connection;
   environment m_env;
};
#endif //QTL_ODBC_ENABLE_ASYNC_MODE
}
}