diff options
| author | Subv <subv2112@gmail.com> | 2014-06-24 13:17:23 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2014-06-24 13:17:41 -0500 |
| commit | f03d49705dc7a0c00350119b319dcf9feb566529 (patch) | |
| tree | a60451bfe422d75a9378a4c124d7839be5e07789 /src/server/shared/Database | |
| parent | 0a592dd9dbd34818deee472dd42d700b4746a27e (diff) | |
Core/Databases: Removed ACE dependencies on some of the database handling code.
Diffstat (limited to 'src/server/shared/Database')
| -rw-r--r-- | src/server/shared/Database/AdhocStatement.cpp | 8 | ||||
| -rw-r--r-- | src/server/shared/Database/AdhocStatement.h | 12 | ||||
| -rw-r--r-- | src/server/shared/Database/DatabaseWorkerPool.h | 12 | ||||
| -rw-r--r-- | src/server/shared/Database/MySQLConnection.cpp | 2 | ||||
| -rw-r--r-- | src/server/shared/Database/PreparedStatement.cpp | 8 | ||||
| -rw-r--r-- | src/server/shared/Database/PreparedStatement.h | 9 | ||||
| -rw-r--r-- | src/server/shared/Database/QueryHolder.cpp | 5 | ||||
| -rw-r--r-- | src/server/shared/Database/QueryHolder.h | 11 |
8 files changed, 35 insertions, 32 deletions
diff --git a/src/server/shared/Database/AdhocStatement.cpp b/src/server/shared/Database/AdhocStatement.cpp index 896fefde5b7..65c41823ccb 100644 --- a/src/server/shared/Database/AdhocStatement.cpp +++ b/src/server/shared/Database/AdhocStatement.cpp @@ -25,9 +25,9 @@ m_has_result(false) m_sql = strdup(sql); } -BasicStatementTask::BasicStatementTask(const char* sql, QueryResultFuture result) : +BasicStatementTask::BasicStatementTask(const char* sql, QueryResultPromise& result) : m_has_result(true), -m_result(result) +m_result(std::move(result)) { m_sql = strdup(sql); } @@ -45,11 +45,11 @@ bool BasicStatementTask::Execute() if (!result || !result->GetRowCount() || !result->NextRow()) { delete result; - m_result.set(QueryResult(NULL)); + m_result.set_value(QueryResult(NULL)); return false; } - m_result.set(QueryResult(result)); + m_result.set_value(QueryResult(result)); return true; } diff --git a/src/server/shared/Database/AdhocStatement.h b/src/server/shared/Database/AdhocStatement.h index 44a9fa3d3ee..a67caaa160f 100644 --- a/src/server/shared/Database/AdhocStatement.h +++ b/src/server/shared/Database/AdhocStatement.h @@ -18,24 +18,26 @@ #ifndef _ADHOCSTATEMENT_H #define _ADHOCSTATEMENT_H -#include <ace/Future.h> +#include <future> #include "SQLOperation.h" -typedef ACE_Future<QueryResult> QueryResultFuture; +typedef std::future<QueryResult> QueryResultFuture; +typedef std::promise<QueryResult> QueryResultPromise; + /*! Raw, ad-hoc query. */ class BasicStatementTask : public SQLOperation { public: BasicStatementTask(const char* sql); - BasicStatementTask(const char* sql, QueryResultFuture result); + BasicStatementTask(const char* sql, QueryResultPromise& result); ~BasicStatementTask(); - bool Execute(); + bool Execute() override; private: const char* m_sql; //- Raw query to be executed bool m_has_result; - QueryResultFuture m_result; + QueryResultPromise m_result; }; #endif
\ No newline at end of file diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h index 9c56c75bf71..078b97762b5 100644 --- a/src/server/shared/Database/DatabaseWorkerPool.h +++ b/src/server/shared/Database/DatabaseWorkerPool.h @@ -307,10 +307,10 @@ class DatabaseWorkerPool //! The return value is then processed in ProcessQueryCallback methods. QueryResultFuture AsyncQuery(const char* sql) { - QueryResultFuture res; + QueryResultPromise res; BasicStatementTask* task = new BasicStatementTask(sql, res); Enqueue(task); - return res; //! Actual return value has no use yet + return res.get_future(); //! Actual return value has no use yet } //! Enqueues a query in string format -with variable args- that will set the value of the QueryResultFuture return object as soon as the query is executed. @@ -331,10 +331,10 @@ class DatabaseWorkerPool //! Statement must be prepared with CONNECTION_ASYNC flag. PreparedQueryResultFuture AsyncQuery(PreparedStatement* stmt) { - PreparedQueryResultFuture res; + PreparedQueryResultPromise res; PreparedStatementTask* task = new PreparedStatementTask(stmt, res); Enqueue(task); - return res; + return res.get_future(); } //! Enqueues a vector of SQL operations (can be both adhoc and prepared) that will set the value of the QueryResultHolderFuture @@ -343,10 +343,10 @@ class DatabaseWorkerPool //! Any prepared statements added to this holder need to be prepared with the CONNECTION_ASYNC flag. QueryResultHolderFuture DelayQueryHolder(SQLQueryHolder* holder) { - QueryResultHolderFuture res; + QueryResultHolderPromise res; SQLQueryHolderTask* task = new SQLQueryHolderTask(holder, res); Enqueue(task); - return res; //! Fool compiler, has no use yet + return res.get_future(); //! Fool compiler, has no use yet } /** diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp index 55d47c76430..0d2d97f7f28 100644 --- a/src/server/shared/Database/MySQLConnection.cpp +++ b/src/server/shared/Database/MySQLConnection.cpp @@ -34,6 +34,8 @@ #include "Timer.h" #include "Log.h" +#include <ace/OS_NS_unistd.h> + MySQLConnection::MySQLConnection(MySQLConnectionInfo& connInfo) : m_reconnecting(false), m_prepareError(false), diff --git a/src/server/shared/Database/PreparedStatement.cpp b/src/server/shared/Database/PreparedStatement.cpp index fe052bf5043..4b2b55f25e5 100644 --- a/src/server/shared/Database/PreparedStatement.cpp +++ b/src/server/shared/Database/PreparedStatement.cpp @@ -449,10 +449,10 @@ PreparedStatementTask::PreparedStatementTask(PreparedStatement* stmt) : m_stmt(stmt), m_has_result(false) { } -PreparedStatementTask::PreparedStatementTask(PreparedStatement* stmt, PreparedQueryResultFuture result) : +PreparedStatementTask::PreparedStatementTask(PreparedStatement* stmt, PreparedQueryResultPromise& result) : m_stmt(stmt), m_has_result(true), -m_result(result) { } +m_result(std::move(result)) { } PreparedStatementTask::~PreparedStatementTask() @@ -468,10 +468,10 @@ bool PreparedStatementTask::Execute() if (!result || !result->GetRowCount()) { delete result; - m_result.set(PreparedQueryResult(NULL)); + m_result.set_value(PreparedQueryResult(NULL)); return false; } - m_result.set(PreparedQueryResult(result)); + m_result.set_value(PreparedQueryResult(result)); return true; } diff --git a/src/server/shared/Database/PreparedStatement.h b/src/server/shared/Database/PreparedStatement.h index 6afb309db2c..d69ee52a3e7 100644 --- a/src/server/shared/Database/PreparedStatement.h +++ b/src/server/shared/Database/PreparedStatement.h @@ -18,8 +18,8 @@ #ifndef _PREPAREDSTATEMENT_H #define _PREPAREDSTATEMENT_H +#include <future> #include "SQLOperation.h" -#include <ace/Future.h> #ifdef __APPLE__ #undef TYPE_BOOL @@ -153,14 +153,15 @@ class MySQLPreparedStatement MySQLPreparedStatement& operator=(MySQLPreparedStatement const& right) = delete; }; -typedef ACE_Future<PreparedQueryResult> PreparedQueryResultFuture; +typedef std::future<PreparedQueryResult> PreparedQueryResultFuture; +typedef std::promise<PreparedQueryResult> PreparedQueryResultPromise; //- Lower-level class, enqueuable operation class PreparedStatementTask : public SQLOperation { public: PreparedStatementTask(PreparedStatement* stmt); - PreparedStatementTask(PreparedStatement* stmt, PreparedQueryResultFuture result); + PreparedStatementTask(PreparedStatement* stmt, PreparedQueryResultPromise& result); ~PreparedStatementTask(); bool Execute(); @@ -168,6 +169,6 @@ class PreparedStatementTask : public SQLOperation protected: PreparedStatement* m_stmt; bool m_has_result; - PreparedQueryResultFuture m_result; + PreparedQueryResultPromise m_result; }; #endif diff --git a/src/server/shared/Database/QueryHolder.cpp b/src/server/shared/Database/QueryHolder.cpp index 7b4105ee076..bd938561b50 100644 --- a/src/server/shared/Database/QueryHolder.cpp +++ b/src/server/shared/Database/QueryHolder.cpp @@ -168,9 +168,6 @@ void SQLQueryHolder::SetSize(size_t size) bool SQLQueryHolderTask::Execute() { - //the result can't be ready as we are processing it right now - ASSERT(!m_result.ready()); - if (!m_holder) return false; @@ -202,6 +199,6 @@ bool SQLQueryHolderTask::Execute() } } - m_result.set(m_holder); + m_result.set_value(m_holder); return true; } diff --git a/src/server/shared/Database/QueryHolder.h b/src/server/shared/Database/QueryHolder.h index b92b2e5327e..5751675fe5f 100644 --- a/src/server/shared/Database/QueryHolder.h +++ b/src/server/shared/Database/QueryHolder.h @@ -18,7 +18,7 @@ #ifndef _QUERYHOLDER_H #define _QUERYHOLDER_H -#include <ace/Future.h> +#include <future> class SQLQueryHolder { @@ -39,17 +39,18 @@ class SQLQueryHolder void SetPreparedResult(size_t index, PreparedResultSet* result); }; -typedef ACE_Future<SQLQueryHolder*> QueryResultHolderFuture; +typedef std::future<SQLQueryHolder*> QueryResultHolderFuture; +typedef std::promise<SQLQueryHolder*> QueryResultHolderPromise; class SQLQueryHolderTask : public SQLOperation { private: SQLQueryHolder * m_holder; - QueryResultHolderFuture m_result; + QueryResultHolderPromise m_result; public: - SQLQueryHolderTask(SQLQueryHolder *holder, QueryResultHolderFuture res) - : m_holder(holder), m_result(res){ }; + SQLQueryHolderTask(SQLQueryHolder *holder, QueryResultHolderPromise& res) + : m_holder(holder), m_result(std::move(res)){ }; bool Execute(); }; |
