diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-09-19 00:33:19 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-09-19 00:33:19 +0200 |
| commit | 301572212fc54d4972b0e2989f57299f6351f495 (patch) | |
| tree | 36ae5b11be8b95fb1613babbc0d358847063d5c7 /src/server/database/Database | |
| parent | f67cd38312014b13624dcb5fe1d117dac4892b7d (diff) | |
Core/Misc: Changed string formatting functions to accept std::string_view as format argument instead being templated on it to slightly improve compile times and reduce executable size
Diffstat (limited to 'src/server/database/Database')
| -rw-r--r-- | src/server/database/Database/DatabaseWorkerPool.h | 24 | ||||
| -rw-r--r-- | src/server/database/Database/Transaction.h | 6 |
2 files changed, 15 insertions, 15 deletions
diff --git a/src/server/database/Database/DatabaseWorkerPool.h b/src/server/database/Database/DatabaseWorkerPool.h index 66d5a55dffa..bf735f244e1 100644 --- a/src/server/database/Database/DatabaseWorkerPool.h +++ b/src/server/database/Database/DatabaseWorkerPool.h @@ -72,13 +72,13 @@ class DatabaseWorkerPool //! Enqueues a one-way SQL operation in string format -with variable args- that will be executed asynchronously. //! This method should only be used for queries that are only executed once, e.g during startup. - template<typename Format, typename... Args> - void PExecute(Format&& sql, Args&&... args) + template<typename... Args> + void PExecute(std::string_view sql, Args&&... args) { if (Trinity::IsFormatEmptyOrNull(sql)) return; - Execute(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str()); + Execute(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str()); } //! Enqueues a one-way SQL operation in prepared statement format that will be executed asynchronously. @@ -95,13 +95,13 @@ class DatabaseWorkerPool //! Directly executes a one-way SQL operation in string format -with variable args-, that will block the calling thread until finished. //! This method should only be used for queries that are only executed once, e.g during startup. - template<typename Format, typename... Args> - void DirectPExecute(Format&& sql, Args&&... args) + template<typename... Args> + void DirectPExecute(std::string_view sql, Args&&... args) { if (Trinity::IsFormatEmptyOrNull(sql)) return; - DirectExecute(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str()); + DirectExecute(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str()); } //! Directly executes a one-way SQL operation in prepared statement format, that will block the calling thread until finished. @@ -118,24 +118,24 @@ class DatabaseWorkerPool //! Directly executes an SQL query in string format -with variable args- that will block the calling thread until finished. //! Returns reference counted auto pointer, no need for manual memory management in upper level code. - template<typename Format, typename... Args> - QueryResult PQuery(Format&& sql, T* conn, Args&&... args) + template<typename... Args> + QueryResult PQuery(std::string_view sql, T* conn, Args&&... args) { if (Trinity::IsFormatEmptyOrNull(sql)) return QueryResult(nullptr); - return Query(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str(), conn); + return Query(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str(), conn); } //! Directly executes an SQL query in string format -with variable args- that will block the calling thread until finished. //! Returns reference counted auto pointer, no need for manual memory management in upper level code. - template<typename Format, typename... Args> - QueryResult PQuery(Format&& sql, Args&&... args) + template<typename... Args> + QueryResult PQuery(std::string_view sql, Args&&... args) { if (Trinity::IsFormatEmptyOrNull(sql)) return QueryResult(nullptr); - return Query(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str()); + return Query(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str()); } //! Directly executes an SQL query in prepared format that will block the calling thread until finished. diff --git a/src/server/database/Database/Transaction.h b/src/server/database/Database/Transaction.h index 205b06908fd..9e2a426019f 100644 --- a/src/server/database/Database/Transaction.h +++ b/src/server/database/Database/Transaction.h @@ -40,10 +40,10 @@ class TC_DATABASE_API TransactionBase virtual ~TransactionBase() { Cleanup(); } void Append(char const* sql); - template<typename Format, typename... Args> - void PAppend(Format&& sql, Args&&... args) + template<typename... Args> + void PAppend(std::string_view sql, Args&&... args) { - Append(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str()); + Append(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str()); } std::size_t GetSize() const { return m_queries.size(); } |
