diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-04-21 16:05:13 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-04-21 16:05:13 +0200 |
commit | 2a0f39b29c1bea6a4497c0f1826052ffa453af9e (patch) | |
tree | 283f6bf1569c1b9f00b6e25fe986ccfff8a8629f /brep/database.cxx | |
parent | c6b4d6c6489731eedba606d3c85c4319c4478b50 (diff) |
Move module implementation from brep/ to mod/
Diffstat (limited to 'brep/database.cxx')
-rw-r--r-- | brep/database.cxx | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/brep/database.cxx b/brep/database.cxx deleted file mode 100644 index 4b56c37..0000000 --- a/brep/database.cxx +++ /dev/null @@ -1,60 +0,0 @@ -// file : brep/database.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include <brep/database> - -#include <map> - -#include <odb/pgsql/database.hxx> -#include <odb/pgsql/connection-factory.hxx> - -namespace brep -{ - namespace options - { - bool - operator< (const db& x, const db& y) - { - int r; - if ((r = x.db_user ().compare (y.db_user ())) != 0 || - (r = x.db_password ().compare (y.db_password ())) != 0 || - (r = x.db_name ().compare (y.db_name ())) != 0 || - (r = x.db_host ().compare (y.db_host ()))) - return r < 0; - - return x.db_port () < y.db_port (); - } - } - - using namespace odb; - - shared_ptr<database> - shared_database (const options::db& o) - { - static std::map<options::db, weak_ptr<database>> databases; - - auto i (databases.find (o)); - if (i != databases.end ()) - { - if (shared_ptr<database> d = i->second.lock ()) - return d; - } - - unique_ptr<pgsql::connection_factory> - f (new pgsql::connection_pool_factory (o.db_max_connections ())); - - shared_ptr<database> d ( - make_shared<pgsql::database> ( - o.db_user (), - o.db_password (), - o.db_name (), - o.db_host (), - o.db_port (), - "options='-c default_transaction_isolation=serializable'", - move (f))); - - databases[o] = d; - return d; - } -} |