diff options
Diffstat (limited to 'libcommon/common')
-rw-r--r-- | libcommon/common/common.cxx | 12 | ||||
-rw-r--r-- | libcommon/common/common.hxx | 5 |
2 files changed, 13 insertions, 4 deletions
diff --git a/libcommon/common/common.cxx b/libcommon/common/common.cxx index d68d579..960a946 100644 --- a/libcommon/common/common.cxx +++ b/libcommon/common/common.cxx @@ -12,6 +12,7 @@ #ifdef DB_ID_MYSQL # include <odb/mysql/database.hxx> +# include <odb/mysql/connection-factory.hxx> #endif #include <common/common.hxx> @@ -21,7 +22,7 @@ using namespace std; using namespace odb; auto_ptr<database> -create_database (int argc, char* argv[]) +create_database (int argc, char* argv[], size_t max_connections) { #ifdef DB_ID_MYSQL cli::argv_file_scanner scan (argc, argv, "--options-file"); @@ -35,6 +36,11 @@ create_database (int argc, char* argv[]) exit (0); } + auto_ptr<mysql::connection_factory> f; + + if (max_connections != 0) + f.reset (new mysql::connection_pool_factory (max_connections)); + return auto_ptr<database> ( new mysql::database ( ops.user (), @@ -42,7 +48,9 @@ create_database (int argc, char* argv[]) ops.db_name (), ops.host (), ops.port (), - ops.socket_specified () ? &ops.socket () : 0)); + ops.socket_specified () ? &ops.socket () : 0, + 0, + f)); #else return auto_ptr<database> (0); #endif diff --git a/libcommon/common/common.hxx b/libcommon/common/common.hxx index 87b08f0..57069dc 100644 --- a/libcommon/common/common.hxx +++ b/libcommon/common/common.hxx @@ -6,13 +6,14 @@ #ifndef LIBCOMMON_COMMON_COMMON_HXX #define LIBCOMMON_COMMON_COMMON_HXX -#include <memory> // std::auto_ptr +#include <memory> // std::auto_ptr +#include <cstddef> // std::size_t #include <odb/database.hxx> #include <common/export.hxx> LIBCOMMON_EXPORT std::auto_ptr<odb::database> -create_database (int argc, char* argv[]); +create_database (int argc, char* argv[], std::size_t max_connections = 0); #endif // LIBCOMMON_COMMON_COMMON_HXX |