diff options
Diffstat (limited to 'src/server/database/Database/Transaction.h')
-rw-r--r-- | src/server/database/Database/Transaction.h | 33 |
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 |