#ifndef DBCORE_H #define DBCORE_H #ifdef _WINDOWS #include #include #endif #include "../common/mutex.h" #include "../common/mysql_request_result.h" #include "../common/types.h" #include #include const int8 DATABASE_CONNECTION_DEFAULT = 0; const int8 DATABASE_CONNECTION_CONTENT = 1; class DBcore { public: enum eStatus { Closed, Connected, Error }; DBcore(); ~DBcore(); eStatus GetStatus() { return pStatus; } MySQLRequestResult QueryDatabase(const char *query, uint32 querylen, bool retryOnFailureOnce = true); MySQLRequestResult QueryDatabase(std::string query, bool retryOnFailureOnce = true); void TransactionBegin(); void TransactionCommit(); void TransactionRollback(); uint32 DoEscapeString(char *tobuf, const char *frombuf, uint32 fromlen); void ping(); MYSQL *getMySQL() { return &mysql; } void SetMysql(MYSQL *mysql); int8 GetConnectionType() const; void SetConnectionType(int8 connection_type); protected: bool Open( const char *iHost, const char *iUser, const char *iPassword, const char *iDatabase, uint32 iPort, uint32 *errnum = 0, char *errbuf = 0, bool iCompress = false, bool iSSL = false ); private: bool Open(uint32 *errnum = nullptr, char *errbuf = nullptr); int8 connection_type; MYSQL mysql; Mutex MDatabase; eStatus pStatus; char *pHost; char *pUser; char *pPassword; char *pDatabase; bool pCompress; uint32 pPort; bool pSSL; }; #endif