18#ifndef _DATABASEWORKERPOOL_H
19#define _DATABASEWORKERPOOL_H
73 template<
typename... Args>
96 template<
typename... Args>
119 template<
typename... Args>
130 template<
typename... Args>
218 unsigned long EscapeString(
char* to,
char const* from,
unsigned long length);
std::shared_ptr< ResultSet > QueryResult
std::shared_ptr< Transaction< T > > SQLTransaction
std::shared_ptr< PreparedResultSet > PreparedQueryResult
uint32 OpenConnections(InternalIndex type, uint8 numConnections)
void CommitTransaction(SQLTransaction< T > transaction)
std::vector< uint8 > _preparedStatementSize
QueryResult Query(char const *sql, T *connection=nullptr)
bool PrepareStatements()
Prepares all prepared statements.
T * GetAsyncConnectionForCurrentThread() const
std::unique_ptr< MySQLConnectionInfo > _connectionInfo
void DirectPExecute(Trinity::FormatString< Args... > sql, Args &&... args)
void SetConnectionInfo(std::string const &infoString, uint8 const asyncThreads, uint8 const synchThreads)
static void WarnAboutSyncQueries(bool warn)
std::array< std::vector< std::unique_ptr< T > >, IDX_SIZE > _connections
QueryResult PQuery(Trinity::FormatString< Args... > sql, Args &&... args)
std::unique_ptr< Trinity::Asio::IoContext > _ioContext
Queue shared by async worker threads.
void ExecuteOrAppend(SQLTransaction< T > &trans, char const *sql)
std::atomic< size_t > _queueSize
SQLTransaction< T > BeginTransaction()
Begins an automanaged transaction pointer that will automatically rollback if not commited....
void DirectCommitTransaction(SQLTransaction< T > &transaction)
void KeepAlive()
Keeps all our MySQL connections alive, prevent the server from disconnecting us.
QueryResult PQuery(Trinity::FormatString< Args... > sql, T *conn, Args &&... args)
T::Statements PreparedStatementIndex
char const * GetDatabaseName() const
PreparedStatement< T > * GetPreparedStatement(PreparedStatementIndex index)
MySQLConnectionInfo const * GetConnectionInfo() const
void DirectExecute(char const *sql)
SQLQueryHolderCallback DelayQueryHolder(std::shared_ptr< SQLQueryHolder< T > > holder)
void EscapeString(std::string &str)
Apply escape string'ing for current collation. (utf8)
void Execute(char const *sql)
void PExecute(Trinity::FormatString< Args... > sql, Args &&... args)
QueryCallback AsyncQuery(char const *sql)
TransactionCallback AsyncCommitTransaction(SQLTransaction< T > transaction)
std::string StringFormat(FormatString< Args... > fmt, Args &&... args)
Default TC string format function.
bool IsFormatEmptyOrNull(char const *fmt)
Returns true if the given char pointer is null.
fmt::format_string< Args... > FormatString