aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/Transaction.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/database/Database/Transaction.h')
-rw-r--r--src/server/database/Database/Transaction.h33
1 files changed, 7 insertions, 26 deletions
diff --git a/src/server/database/Database/Transaction.h b/src/server/database/Database/Transaction.h
index ab6ef73e6af..5fc81bd05c9 100644
--- a/src/server/database/Database/Transaction.h
+++ b/src/server/database/Database/Transaction.h
@@ -26,6 +26,8 @@
#include <mutex>
#include <vector>
+class MySQLConnection;
+
/*! Transactions, high level class. */
class TC_DATABASE_API TransactionBase
{
@@ -69,36 +71,15 @@ public:
};
/*! Low level class*/
-class TC_DATABASE_API TransactionTask : public SQLOperation
-{
- template <class T> friend class DatabaseWorkerPool;
- friend class DatabaseWorker;
- friend class TransactionCallback;
-
- public:
- TransactionTask(std::shared_ptr<TransactionBase> trans) : m_trans(trans) { }
- ~TransactionTask() { }
-
- protected:
- bool Execute() override;
- int TryExecute();
- void CleanupOnFailure();
-
- std::shared_ptr<TransactionBase> m_trans;
- static std::mutex _deadlockLock;
-};
-
-class TC_DATABASE_API TransactionWithResultTask : public TransactionTask
+class TC_DATABASE_API TransactionTask
{
public:
- TransactionWithResultTask(std::shared_ptr<TransactionBase> trans) : TransactionTask(trans) { }
-
- TransactionFuture GetFuture() { return m_result.get_future(); }
+ static bool Execute(MySQLConnection* conn, std::shared_ptr<TransactionBase> trans);
-protected:
- bool Execute() override;
+private:
+ static int TryExecute(MySQLConnection* conn, std::shared_ptr<TransactionBase> trans);
- TransactionPromise m_result;
+ static std::mutex _deadlockLock;
};
class TC_DATABASE_API TransactionCallback