Merge pull request #5 from azerothcore/db-extra

feat(Common/Database): correct impl Extra DB
This commit is contained in:
Yehonal
2021-06-29 12:05:52 +02:00
committed by GitHub
2 changed files with 26 additions and 15 deletions

View File

@@ -19,11 +19,6 @@
#include "MySQLPreparedStatement.h"
#include "DatabaseLoader.h"
class DatabaseLoader;
template class AC_DATABASE_API DatabaseWorkerPool<ExtraDatabaseConnection>;
DatabaseWorkerPool<ExtraDatabaseConnection> ExtraDatabase;
void ExtraDatabaseConnection::DoPrepareStatements()
{
if (!m_reconnecting)
@@ -36,5 +31,15 @@ void ExtraDatabaseConnection::DoPrepareStatements()
PrepareStatement(EXTRA_DEL_EXTERNAL_MAIL, "DELETE FROM mail_external WHERE id = ?", CONNECTION_ASYNC);
}
// template AC_DATABASE_API
// DatabaseLoader& DatabaseLoader::AddDatabase<ExtraDatabaseConnection>(DatabaseWorkerPool<ExtraDatabaseConnection>&, std::string const&);
ExtraDatabaseConnection::ExtraDatabaseConnection(MySQLConnectionInfo& connInfo) :
MySQLConnection(connInfo) { }
ExtraDatabaseConnection::ExtraDatabaseConnection(ProducerConsumerQueue<SQLOperation*>* q, MySQLConnectionInfo& connInfo) :
MySQLConnection(q, connInfo) { }
ExtraDatabaseConnection::~ExtraDatabaseConnection() { }
DatabaseWorkerPool<ExtraDatabaseConnection> ExtraDatabase;
template AC_DATABASE_API
DatabaseLoader& DatabaseLoader::AddDatabase<ExtraDatabaseConnection>(DatabaseWorkerPool<ExtraDatabaseConnection>&, std::string const&);

View File

@@ -21,7 +21,7 @@
#include "MySQLConnection.h"
#include "DatabaseEnv.h"
enum ExtraDatabaseStatements
enum ExtraDatabaseStatements : uint32
{
/* Naming standard for defines:
{DB}_{SET/DEL/ADD/REP}_{Summary of data changed}
@@ -36,18 +36,24 @@ enum ExtraDatabaseStatements
class AC_DATABASE_API ExtraDatabaseConnection : public MySQLConnection
{
public:
typedef ExtraDatabaseStatements Statements;
public:
typedef ExtraDatabaseStatements Statements;
//- Constructors for sync and async connections
ExtraDatabaseConnection(MySQLConnectionInfo& connInfo) : MySQLConnection(connInfo) {}
ExtraDatabaseConnection(ProducerConsumerQueue<SQLOperation*>* q, MySQLConnectionInfo& connInfo) : MySQLConnection(q, connInfo) {}
//- Constructors for sync and async connections
ExtraDatabaseConnection(MySQLConnectionInfo& connInfo);
ExtraDatabaseConnection(ProducerConsumerQueue<SQLOperation*>* q, MySQLConnectionInfo& connInfo);
~ExtraDatabaseConnection();
//- Loads databasetype specific prepared statements
void DoPrepareStatements();
//- Loads databasetype specific prepared statements
void DoPrepareStatements() override;
};
/// Accessor to the extra database
AC_DATABASE_API extern DatabaseWorkerPool<ExtraDatabaseConnection> ExtraDatabase;
using ExtraDatabasePreparedStatement = PreparedStatement<ExtraDatabaseConnection>;
using ExtraDatabaseTransaction = SQLTransaction<ExtraDatabaseConnection>;
using ExtraDatabaseQueryHolder = SQLQueryHolder<ExtraDatabaseConnection>;
#endif