aboutsummaryrefslogtreecommitdiff
path: root/libcommon/common
diff options
context:
space:
mode:
Diffstat (limited to 'libcommon/common')
-rw-r--r--libcommon/common/common.cxx12
-rw-r--r--libcommon/common/common.hxx5
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