diff options
Diffstat (limited to 'src/dal/dataprovider.cpp')
-rw-r--r-- | src/dal/dataprovider.cpp | 20 |
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. */ |