aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-28 16:07:38 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-28 16:07:38 +0200
commit1c2289c99f86a9f8cccfa87aef981e7c39dd4e9e (patch)
treea8fd33cfacfd85faee29d4dce4c9cfb3e2b2f475
parent4ea19dd03241a940a4194ac3bdea89bf7cca8f42 (diff)
Add support for creating connection from existing handle
This will allow for custom connection establishment and configuration.
-rw-r--r--odb/mysql/connection.cxx16
-rw-r--r--odb/mysql/connection.hxx1
2 files changed, 15 insertions, 2 deletions
diff --git a/odb/mysql/connection.cxx b/odb/mysql/connection.cxx
index f8e88a0..e8c9903 100644
--- a/odb/mysql/connection.cxx
+++ b/odb/mysql/connection.cxx
@@ -26,8 +26,7 @@ namespace odb
db_ (db),
failed_ (false),
handle_ (&mysql_),
- active_ (0),
- statement_cache_ (new statement_cache_type (*this))
+ active_ (0)
{
if (mysql_init (handle_) == 0)
throw bad_alloc ();
@@ -64,6 +63,19 @@ namespace odb
throw database_exception (e, sqlstate, message);
}
+
+ statement_cache_.reset (new statement_cache_type (*this));
+ }
+
+ connection::
+ connection (database_type& db, MYSQL* handle)
+ : odb::connection (db),
+ db_ (db),
+ failed_ (false),
+ handle_ (handle),
+ active_ (0)
+ {
+ statement_cache_.reset (new statement_cache_type (*this));
}
connection::
diff --git a/odb/mysql/connection.hxx b/odb/mysql/connection.hxx
index ab0692d..f4462ed 100644
--- a/odb/mysql/connection.hxx
+++ b/odb/mysql/connection.hxx
@@ -43,6 +43,7 @@ namespace odb
~connection ();
connection (database_type&);
+ connection (database_type&, MYSQL* handle);
database_type&
database ()