2015-11-10 16:08:06 +01:00
|
|
|
#include "transaction.h"
|
|
|
|
|
|
2015-11-10 20:31:23 +01:00
|
|
|
#include "context.h"
|
|
|
|
|
|
|
|
|
|
bool Transaction::m_inTransaction = false;
|
|
|
|
|
|
2015-11-10 16:08:06 +01:00
|
|
|
Transaction::Transaction()
|
|
|
|
|
{
|
2015-11-10 20:31:23 +01:00
|
|
|
if (!Transaction::m_inTransaction)
|
|
|
|
|
{
|
|
|
|
|
m_tr = new odb::transaction(Context::instance().db()->begin());
|
|
|
|
|
Transaction::m_inTransaction = true;
|
|
|
|
|
}
|
2015-11-13 15:11:47 +01:00
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_tr = NULL;
|
|
|
|
|
}
|
2015-11-10 16:08:06 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Transaction::~Transaction()
|
|
|
|
|
{
|
2015-11-10 20:31:23 +01:00
|
|
|
if (m_tr != NULL)
|
|
|
|
|
{
|
|
|
|
|
delete m_tr;
|
|
|
|
|
Transaction::m_inTransaction = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-11-10 16:08:06 +01:00
|
|
|
|
2015-11-10 20:31:23 +01:00
|
|
|
void Transaction::commit()
|
|
|
|
|
{
|
|
|
|
|
if (m_tr != NULL)
|
|
|
|
|
{
|
|
|
|
|
m_tr->commit();
|
|
|
|
|
}
|
2015-11-10 16:08:06 +01:00
|
|
|
}
|
|
|
|
|
|