From fc70be62d8698496a20b6947d102757f426c5b3e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 9 Nov 2015 18:14:37 +0200 Subject: Make database class move-constructible This means it can be returned by value from a function in C++11. --- odb/pgsql/connection.cxx | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'odb/pgsql/connection.cxx') 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; + } } } -- cgit v1.1