Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
Transaction.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef _TRANSACTION_H
7#define _TRANSACTION_H
8
10#include "SQLOperation.h"
11
12//- Forward declare (don't include header to prevent circular includes)
14
17{
18 friend class TransactionTask;
19 friend class MySQLConnection;
20
21 template <typename T>
22 friend class DatabaseWorkerPool;
23
24public:
25 Transaction() : _cleanedUp(false) { }
27
28 void Append(PreparedStatement* statement);
29 void Append(const char* sql);
30 void PAppend(const char* sql, ...);
31
32 size_t GetSize() const { return m_queries.size(); }
33
34protected:
35 void Cleanup();
36 std::list<SQLElementData> m_queries;
37
38private:
40};
41
43
46{
47 template <class T> friend class DatabaseWorkerPool;
48 friend class DatabaseWorker;
49
50public:
53
54protected:
55 bool Execute();
56
58};
59
60#endif
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
Definition Transaction.h:42
friend class MySQLConnection
Definition Transaction.h:19
size_t GetSize() const
Definition Transaction.h:32
friend class TransactionTask
Definition Transaction.h:18
std::list< SQLElementData > m_queries
Definition Transaction.h:36
friend class DatabaseWorkerPool
Definition Transaction.h:22
void PAppend(const char *sql,...)
void Append(PreparedStatement *statement)
bool _cleanedUp
Definition Transaction.h:39
TransactionTask(SQLTransaction trans)
Definition Transaction.h:51
friend class DatabaseWorkerPool
Definition Transaction.h:47
SQLTransaction m_trans
Definition Transaction.h:57
friend class DatabaseWorker
Definition Transaction.h:48