aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/MySQLConnection.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared/Database/MySQLConnection.h')
-rw-r--r--src/server/shared/Database/MySQLConnection.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/server/shared/Database/MySQLConnection.h b/src/server/shared/Database/MySQLConnection.h
index d786dd83c01..0c18ad8b7fb 100644
--- a/src/server/shared/Database/MySQLConnection.h
+++ b/src/server/shared/Database/MySQLConnection.h
@@ -18,6 +18,7 @@
#include <ace/Activation_Queue.h>
#include "DatabaseWorkerPool.h"
+#include "Util.h"
#ifndef _MYSQLCONNECTION_H
#define _MYSQLCONNECTION_H
@@ -27,6 +28,33 @@ class PreparedStatement;
class MySQLPreparedStatement;
class PingOperation;
+struct MySQLConnectionInfo
+{
+ MySQLConnectionInfo() {}
+ MySQLConnectionInfo(const std::string& infoString)
+ {
+ Tokens tokens = StrSplit(infoString, ";");
+ Tokens::iterator iter = tokens.begin();
+
+ if (iter != tokens.end())
+ host = *iter++;
+ if (iter != tokens.end())
+ port_or_socket = *iter++;
+ if (iter != tokens.end())
+ user = *iter++;
+ if (iter != tokens.end())
+ password = *iter++;
+ if (iter != tokens.end())
+ database = *iter++;
+ }
+
+ std::string user;
+ std::string password;
+ std::string database;
+ std::string host;
+ std::string port_or_socket;
+};
+
class MySQLConnection
{
template <class T> friend class DatabaseWorkerPool;
@@ -37,7 +65,7 @@ class MySQLConnection
MySQLConnection(ACE_Activation_Queue* queue); //! Constructor for asynchroneous connections.
~MySQLConnection();
- virtual bool Open(const std::string& infoString); //! Connection details.
+ virtual bool Open(const MySQLConnectionInfo& connInfo); //! Connection details.
void Close();
public: