diff options
Diffstat (limited to 'src/shared/Database/DatabaseMysql.h')
-rw-r--r-- | src/shared/Database/DatabaseMysql.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/shared/Database/DatabaseMysql.h b/src/shared/Database/DatabaseMysql.h index 3a7fa4f5def..4612ebfc462 100644 --- a/src/shared/Database/DatabaseMysql.h +++ b/src/shared/Database/DatabaseMysql.h @@ -17,13 +17,17 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef DO_POSTGRESQL + #ifndef _DATABASEMYSQL_H #define _DATABASEMYSQL_H + #include "Database.h" #include "Policies/Singleton.h" #include "ace/Thread_Mutex.h" #include "ace/Guard_T.h" + #ifdef WIN32 #define FD_SETSIZE 1024 #include <winsock2.h> @@ -31,12 +35,15 @@ #else #include <mysql.h> #endif + class TRINITY_DLL_SPEC DatabaseMysql : public Database { friend class Trinity::OperatorNew<DatabaseMysql>; + public: DatabaseMysql(); ~DatabaseMysql(); + //! Initializes Mysql and connects to a server. /*! infoString should be formated like hostname;username;password;database. */ bool Initialize(const char *infoString); @@ -49,18 +56,25 @@ class TRINITY_DLL_SPEC DatabaseMysql : public Database bool BeginTransaction(); bool CommitTransaction(); bool RollbackTransaction(); + operator bool () const { return mMysql != NULL; } + unsigned long escape_string(char *to, const char *from, unsigned long length); using Database::escape_string; + // must be call before first query in thread void ThreadStart(); // must be call before finish thread run void ThreadEnd(); private: ACE_Thread_Mutex mMutex; + ACE_Based::Thread * tranThread; + MYSQL *mMysql; + static size_t db_count; + bool _TransactionCmd(const char *sql); bool _Query(const char *sql, MYSQL_RES **pResult, MYSQL_FIELD **pFields, uint64* pRowCount, uint32* pFieldCount); }; |