diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-11-09 18:14:37 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-11-09 18:14:37 +0200 |
commit | fc70be62d8698496a20b6947d102757f426c5b3e (patch) | |
tree | 92610ee68abf5a1fcc40e8717c4011628865c601 /odb/pgsql/connection.cxx | |
parent | f5f515acc2b926eb838b82b457f6b5979db5f309 (diff) |
Make database class move-constructible
This means it can be returned by value from a function in C++11.
Diffstat (limited to 'odb/pgsql/connection.cxx')
-rw-r--r-- | odb/pgsql/connection.cxx | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/odb/pgsql/connection.cxx b/odb/pgsql/connection.cxx index a39f6a8..dcc841b 100644 --- a/odb/pgsql/connection.cxx +++ b/odb/pgsql/connection.cxx @@ -28,9 +28,10 @@ namespace odb namespace pgsql { connection:: - connection (database_type& db) - : odb::connection (db), db_ (db), failed_ (false) + connection (connection_factory& cf) + : odb::connection (cf), failed_ (false) { + database_type& db (database ()); handle_.reset (PQconnectdb (db.conninfo ().c_str ())); if (handle_ == 0) @@ -42,8 +43,8 @@ namespace odb } connection:: - connection (database_type& db, PGconn* handle) - : odb::connection (db), db_ (db), handle_ (handle), failed_ (false) + connection (connection_factory& cf, PGconn* handle) + : odb::connection (cf), handle_ (handle), failed_ (false) { init (); } @@ -117,5 +118,19 @@ namespace odb return count; } + + // connection_factory + // + connection_factory:: + ~connection_factory () + { + } + + void connection_factory:: + database (database_type& db) + { + odb::connection_factory::db_ = &db; + db_ = &db; + } } } |