From e585187b248f48b3c6e9247b49fa07c6565d65e5 Mon Sep 17 00:00:00 2001 From: maximius Date: Sat, 17 Oct 2009 15:51:44 -0700 Subject: *Backed out changeset 3be01fb200a5 --HG-- branch : trunk --- src/shared/Database/SqlOperations.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/shared/Database/SqlOperations.h') diff --git a/src/shared/Database/SqlOperations.h b/src/shared/Database/SqlOperations.h index 164c7258ec3..e91d83b6611 100644 --- a/src/shared/Database/SqlOperations.h +++ b/src/shared/Database/SqlOperations.h @@ -17,16 +17,22 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef __SQLOPERATIONS_H #define __SQLOPERATIONS_H + #include "Common.h" + #include "ace/Thread_Mutex.h" #include "LockedQueue.h" #include #include "Utilities/Callback.h" + /// ---- BASE --- + class Database; class SqlDelayThread; + class SqlOperation { public: @@ -34,7 +40,9 @@ class SqlOperation virtual void Execute(Database *db) = 0; virtual ~SqlOperation() {} }; + /// ---- ASYNC STATEMENTS / TRANSACTIONS ---- + class SqlStatement : public SqlOperation { private: @@ -44,6 +52,7 @@ class SqlStatement : public SqlOperation ~SqlStatement() { void* tofree = const_cast(m_sql); free(tofree); } void Execute(Database *db); }; + class SqlTransaction : public SqlOperation { private: @@ -53,18 +62,22 @@ class SqlTransaction : public SqlOperation void DelayExecute(const char *sql) { m_queue.push(strdup(sql)); } void Execute(Database *db); }; + /// ---- ASYNC QUERIES ---- + class SqlQuery; /// contains a single async query class QueryResult; /// the result of one class SqlResultQueue; /// queue for thread sync class SqlQueryHolder; /// groups several async quries class SqlQueryHolderEx; /// points to a holder, added to the delay thread + class SqlResultQueue : public ACE_Based::LockedQueue { public: SqlResultQueue() {} void Update(); }; + class SqlQuery : public SqlOperation { private: @@ -77,6 +90,7 @@ class SqlQuery : public SqlOperation ~SqlQuery() { void* tofree = const_cast(m_sql); free(tofree); } void Execute(Database *db); }; + class SqlQueryHolder { friend class SqlQueryHolderEx; @@ -93,6 +107,7 @@ class SqlQueryHolder void SetResult(size_t index, QueryResult *result); bool Execute(Trinity::IQueryCallback * callback, SqlDelayThread *thread, SqlResultQueue *queue); }; + class SqlQueryHolderEx : public SqlOperation { private: -- cgit v1.2.3