aboutsummaryrefslogtreecommitdiff
path: root/brep/shared-database.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'brep/shared-database.cxx')
-rw-r--r--brep/shared-database.cxx14
1 files changed, 11 insertions, 3 deletions
diff --git a/brep/shared-database.cxx b/brep/shared-database.cxx
index db6b811..1389dab 100644
--- a/brep/shared-database.cxx
+++ b/brep/shared-database.cxx
@@ -14,7 +14,7 @@
namespace brep
{
shared_ptr<odb::database>
- shared_database (const string& h, unsigned int p)
+ shared_database (const options::db& o)
{
using odb::pgsql::database;
static weak_ptr<database> db;
@@ -25,14 +25,22 @@ namespace brep
//
if (shared_ptr<database> d = db.lock ())
{
- if (h != d->host () || p != d->port ())
+ if (o.db_user () != d->user () ||
+ o.db_password () != d->password () ||
+ o.db_name () != d->db () ||
+ o.db_host () != d->host () ||
+ o.db_port () != d->port ())
throw std::runtime_error ("shared database host/port mismatch");
return d;
}
else
{
- d = make_shared<database> ("", "", "brep", h, p);
+ d = make_shared<database> (o.db_user (),
+ o.db_password (),
+ o.db_name (),
+ o.db_host (),
+ o.db_port ());
db = d;
return d;
}