aboutsummaryrefslogtreecommitdiff
path: root/odb/pgsql/connection.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-11-09 18:14:37 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-11-09 18:14:37 +0200
commitfc70be62d8698496a20b6947d102757f426c5b3e (patch)
tree92610ee68abf5a1fcc40e8717c4011628865c601 /odb/pgsql/connection.cxx
parentf5f515acc2b926eb838b82b457f6b5979db5f309 (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.cxx23
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;
+ }
}
}