diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-21 16:27:34 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-21 16:27:34 +0200 |
commit | bde4f5c3bddb437c5238bcb6dd2311bc57600ef1 (patch) | |
tree | e25658cc26cf40318847c60e8de01ac1720bd18a /odb/tracer/connection.cxx | |
parent | 4c78c4b1e1a826a85468a4125813cec3dcbbbd06 (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.cxx | 37 |
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))); + } + } +} |