comparison Framework/Common/DatabaseManager.cpp @ 207:d9ef3f16e6a2

wrapping transactions in API v3
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 19 Mar 2021 15:11:45 +0100
parents 3236894320d6
children b40b30075c51
comparison
equal deleted inserted replaced
206:6dcf57074dd4 207:d9ef3f16e6a2
210 210
211 dialect_ = factory->GetDialect(); 211 dialect_ = factory->GetDialect();
212 } 212 }
213 213
214 214
215 void DatabaseManager::StartTransaction() 215 void DatabaseManager::StartTransaction(TransactionType type)
216 { 216 {
217 // TODO - Deal with TransactionType
218
217 boost::recursive_mutex::scoped_lock lock(mutex_); 219 boost::recursive_mutex::scoped_lock lock(mutex_);
218 220
219 try 221 try
220 { 222 {
221 if (transaction_.get() != NULL) 223 if (transaction_.get() != NULL)
282 } 284 }
283 } 285 }
284 } 286 }
285 287
286 288
287 DatabaseManager::Transaction::Transaction(DatabaseManager& manager) : 289 DatabaseManager::Transaction::Transaction(DatabaseManager& manager,
290 TransactionType type) :
288 lock_(manager.mutex_), 291 lock_(manager.mutex_),
289 manager_(manager), 292 manager_(manager),
290 database_(manager.GetDatabase()), 293 database_(manager.GetDatabase()),
291 committed_(false) 294 committed_(false)
292 { 295 {
293 manager_.StartTransaction(); 296 manager_.StartTransaction(type);
294 } 297 }
295 298
296 299
297 DatabaseManager::Transaction::~Transaction() 300 DatabaseManager::Transaction::~Transaction()
298 { 301 {