![]() |
LeechCraft
%{LEECHCRAFT_VERSION}
Modular cross-platform feature rich live environment.
|
Provides database transaction lock. More...
#include "dblock.h"
Public Member Functions | |
DBLock (const DBLock &)=delete | |
DBLock & | operator= (const DBLock &)=delete |
UTIL_API | DBLock (QSqlDatabase &database) |
Constructor. More... | |
UTIL_API | ~DBLock () |
Destructor. More... | |
UTIL_API void | Init () |
Initializes the transaction. More... | |
UTIL_API void | Good () |
Notifies the lock about successful higher-level operations. More... | |
Static Public Member Functions | |
static UTIL_API void | DumpError (const QSqlError &error) |
Dumps the error to the qWarning() stream. More... | |
static UTIL_API void | DumpError (const QSqlQuery &query) |
Dumps the error to the qWarning() stream. More... | |
Provides database transaction lock.
To use the lock, create an instance of it passing a non-const reference to the QSqlDatabase to be guarded. To initialize and start the locking mechanism, call Init(). To notify DBLock that everything is good and the database shouldn't be rolled back, call Good(). Transaction would be either commited or rolled back in class' destructor.
The state could be unusable, usable or correct. Unusable means that the class itself isn't usable, usable means that the class is usable, but the transaction state isn't necesseraly in a correct state, and correct means that the lock class is usable and the transaction state is correct.
|
delete |
LeechCraft::Util::DBLock::DBLock | ( | QSqlDatabase & | database | ) |
Constructor.
Constructs the lock and prepares it to work with the database. Creating the lock doesn't begin the transaction. Lock is in usable state after that.
[in] | database | Non-const reference to the database to be guarded. |
Definition at line 41 of file dblock.cpp.
LeechCraft::Util::DBLock::~DBLock | ( | ) |
Destructor.
Ends the transaction if the lock is in a correct state. If Good() was called, it commits the transaction, otherwise rolls back.
Definition at line 48 of file dblock.cpp.
|
static |
Dumps the error to the qWarning() stream.
[in] | error | The error class. |
Definition at line 85 of file dblock.cpp.
|
static |
Dumps the error to the qWarning() stream.
[in] | query | The query that should be dumped. |
Definition at line 92 of file dblock.cpp.
void LeechCraft::Util::DBLock::Good | ( | ) |
Notifies the lock about successful higher-level operations.
Calling this function makes the lock to commit the transaction upon destruction instead of rolling back.
Definition at line 80 of file dblock.cpp.
void LeechCraft::Util::DBLock::Init | ( | ) |
Initializes the transaction.
Tries to start the transaction. If this wasn't successful, the lock remains in a usable but not correct state.
std::runtime_error |
Definition at line 62 of file dblock.cpp.