From bf72fa749ff3beef2ba226862e2a5af7c170fc49 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Wed, 29 Sep 2010 08:48:06 +0200 Subject: Core/DBLayer: Store MySQL connection details in a struct and print relevant data in sql driver messages --HG-- branch : trunk --- src/server/shared/Database/MySQLConnection.h | 30 +++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/server/shared/Database/MySQLConnection.h') 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 #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 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: -- cgit v1.2.3