From 7e538980a2b4fc6c74bde7bd456633d954272708 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 12 May 2017 18:49:51 +0200 Subject: Core/Database: Include cleanup --- src/server/database/Database/MySQLConnection.cpp | 64 +++++++++++++++++------- 1 file changed, 47 insertions(+), 17 deletions(-) (limited to 'src/server/database/Database/MySQLConnection.cpp') diff --git a/src/server/database/Database/MySQLConnection.cpp b/src/server/database/Database/MySQLConnection.cpp index 47ed4a97c3e..2598e3214ff 100644 --- a/src/server/database/Database/MySQLConnection.cpp +++ b/src/server/database/Database/MySQLConnection.cpp @@ -15,23 +15,34 @@ * with this program. If not, see . */ - -#include "Common.h" - -#ifdef _WIN32 - #include -#endif -#include -#include - #include "MySQLConnection.h" -#include "QueryResult.h" -#include "SQLOperation.h" -#include "PreparedStatement.h" +#include "Common.h" #include "DatabaseWorker.h" -#include "Timer.h" #include "Log.h" -#include "ProducerConsumerQueue.h" +#include "PreparedStatement.h" +#include "QueryResult.h" +#include "Timer.h" +#include "Transaction.h" +#include "Util.h" +#include +#include +#include + +MySQLConnectionInfo::MySQLConnectionInfo(std::string const& infoString) +{ + Tokenizer tokens(infoString, ';'); + + if (tokens.size() != 5) + return; + + uint8 i = 0; + + host.assign(tokens[i++]); + port_or_socket.assign(tokens[i++]); + user.assign(tokens[i++]); + password.assign(tokens[i++]); + database.assign(tokens[i++]); +} MySQLConnection::MySQLConnection(MySQLConnectionInfo& connInfo) : m_reconnecting(false), @@ -360,14 +371,13 @@ void MySQLConnection::CommitTransaction() int MySQLConnection::ExecuteTransaction(SQLTransaction& transaction) { - std::list const& queries = transaction->m_queries; + std::vector const& queries = transaction->m_queries; if (queries.empty()) return -1; BeginTransaction(); - std::list::const_iterator itr; - for (itr = queries.begin(); itr != queries.end(); ++itr) + for (auto itr = queries.begin(); itr != queries.end(); ++itr) { SQLElementData const& data = *itr; switch (itr->type) @@ -410,6 +420,26 @@ int MySQLConnection::ExecuteTransaction(SQLTransaction& transaction) return 0; } +void MySQLConnection::Ping() +{ + mysql_ping(m_Mysql); +} + +uint32 MySQLConnection::GetLastError() +{ + return mysql_errno(m_Mysql); +} + +bool MySQLConnection::LockIfReady() +{ + return m_Mutex.try_lock(); +} + +void MySQLConnection::Unlock() +{ + m_Mutex.unlock(); +} + MySQLPreparedStatement* MySQLConnection::GetPreparedStatement(uint32 index) { ASSERT(index < m_stmts.size()); -- cgit v1.2.3