aboutsummaryrefslogtreecommitdiff
path: root/odb/tracer/connection.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-21 16:27:34 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-21 16:27:34 +0200
commitbde4f5c3bddb437c5238bcb6dd2311bc57600ef1 (patch)
treee25658cc26cf40318847c60e8de01ac1720bd18a /odb/tracer/connection.cxx
parent4c78c4b1e1a826a85468a4125813cec3dcbbbd06 (diff)
Add odb::connection class
This abstract class represents a connection to the database. One can use it to start a transaction or to execute a native statement out of a transaction. Before we had concrete connection classes in the database runtime libraries (e.g., odb::mysql::connection). Now these classes derive from odb::connection.
Diffstat (limited to 'odb/tracer/connection.cxx')
-rw-r--r--odb/tracer/connection.cxx37
1 files changed, 37 insertions, 0 deletions
diff --git a/odb/tracer/connection.cxx b/odb/tracer/connection.cxx
new file mode 100644
index 0000000..516e36a
--- /dev/null
+++ b/odb/tracer/connection.cxx
@@ -0,0 +1,37 @@
+// file : odb/tracer/connection.cxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#include <odb/transaction.hxx>
+
+#include <odb/tracer/database.hxx>
+#include <odb/tracer/connection.hxx>
+
+namespace odb
+{
+ namespace tracer
+ {
+ connection::
+ connection (database_type& db)
+ : odb::connection (db)
+ {
+ }
+
+ unsigned long long connection::
+ execute (const char*, std::size_t)
+ {
+ return 0;
+ }
+
+ transaction_impl* connection::
+ begin ()
+ {
+ if (odb::transaction::has_current ())
+ throw already_in_transaction ();
+
+ return new transaction_impl (
+ connection_ptr (inc_ref (this)));
+ }
+ }
+}