summaryrefslogtreecommitdiff
path: root/src/dal/dataprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dal/dataprovider.cpp')
-rw-r--r--src/dal/dataprovider.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/dal/dataprovider.cpp b/src/dal/dataprovider.cpp
index 370741cd..f6bcbdf9 100644
--- a/src/dal/dataprovider.cpp
+++ b/src/dal/dataprovider.cpp
@@ -25,6 +25,26 @@
namespace dal
{
+PerformTransaction::PerformTransaction(DataProvider *dataProvider)
+ : mDataProvider(dataProvider)
+ , mCommitted(false)
+{
+ mDataProvider->beginTransaction();
+}
+
+PerformTransaction::~PerformTransaction()
+{
+ if (!mCommitted)
+ mDataProvider->rollbackTransaction();
+}
+
+void PerformTransaction::commit()
+{
+ mDataProvider->commitTransaction();
+ mCommitted = true;
+}
+
+
/**
* Constructor.
*/