mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
/*
|
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>
|
|
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
|
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
|
*/
|
|
|
|
#ifndef _QUERYHOLDER_H
|
|
#define _QUERYHOLDER_H
|
|
|
|
#include <ace/Future.h>
|
|
|
|
class SQLQueryHolder
|
|
{
|
|
friend class SQLQueryHolderTask;
|
|
private:
|
|
typedef std::pair<SQLElementData, SQLResultSetUnion> SQLResultPair;
|
|
std::vector<SQLResultPair> m_queries;
|
|
public:
|
|
SQLQueryHolder() { }
|
|
~SQLQueryHolder();
|
|
bool SetQuery(size_t index, const char* sql);
|
|
bool SetPQuery(size_t index, const char* format, ...) ATTR_PRINTF(3, 4);
|
|
bool SetPreparedQuery(size_t index, PreparedStatement* stmt);
|
|
void SetSize(size_t size);
|
|
QueryResult GetResult(size_t index);
|
|
PreparedQueryResult GetPreparedResult(size_t index);
|
|
void SetResult(size_t index, ResultSet* result);
|
|
void SetPreparedResult(size_t index, PreparedResultSet* result);
|
|
};
|
|
|
|
typedef ACE_Future<SQLQueryHolder*> QueryResultHolderFuture;
|
|
|
|
class SQLQueryHolderTask : public SQLOperation
|
|
{
|
|
private:
|
|
SQLQueryHolder* m_holder;
|
|
QueryResultHolderFuture m_result;
|
|
|
|
public:
|
|
SQLQueryHolderTask(SQLQueryHolder* holder, QueryResultHolderFuture res)
|
|
: m_holder(holder), m_result(res) { };
|
|
bool Execute();
|
|
|
|
};
|
|
|
|
#endif |