aboutsummaryrefslogtreecommitdiff
path: root/odb/tracer/transaction-impl.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/tracer/transaction-impl.cxx')
-rw-r--r--odb/tracer/transaction-impl.cxx21
1 files changed, 20 insertions, 1 deletions
diff --git a/odb/tracer/transaction-impl.cxx b/odb/tracer/transaction-impl.cxx
index 2069568..bf272b3 100644
--- a/odb/tracer/transaction-impl.cxx
+++ b/odb/tracer/transaction-impl.cxx
@@ -17,12 +17,17 @@ namespace odb
namespace tracer
{
transaction_impl::
+ transaction_impl (database_type& db)
+ : odb::transaction_impl (db), finalized_ (false)
+ {
+ }
+
+ transaction_impl::
transaction_impl (connection_ptr c)
: odb::transaction_impl (c->database (), *c),
finalized_ (false),
connection_ (c)
{
- cout << "begin transaction" << endl;
}
transaction_impl::
@@ -33,6 +38,20 @@ namespace odb
}
void transaction_impl::
+ start ()
+ {
+ // Grab a connection if we don't already have one.
+ //
+ if (connection_ == 0)
+ {
+ connection_ = static_cast<database_type&> (database_).connection ();
+ odb::transaction_impl::connection_ = connection_.get ();
+ }
+
+ cout << "begin transaction" << endl;
+ }
+
+ void transaction_impl::
commit ()
{
cout << "commit transaction" << endl;