From a2a3c6531152fc5e8b7fabb51e932caa7b8e94f5 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 9 Jul 2025 20:14:21 +0200 Subject: Core/Database: Add Empty and CancelAll functions to AsyncCallbackProcessor and enable callback concept check (cherry picked from commit b4f7948dfbe991879dca39dc9b3d53056b8a9e81) --- src/server/database/Database/DatabaseEnvFwd.h | 7 ++++--- src/server/database/Database/QueryCallback.h | 2 ++ src/server/database/Database/QueryHolder.h | 2 ++ src/server/database/Database/Transaction.h | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) (limited to 'src/server/database/Database') diff --git a/src/server/database/Database/DatabaseEnvFwd.h b/src/server/database/Database/DatabaseEnvFwd.h index c92c8092775..6167e936f76 100644 --- a/src/server/database/Database/DatabaseEnvFwd.h +++ b/src/server/database/Database/DatabaseEnvFwd.h @@ -18,6 +18,7 @@ #ifndef DatabaseEnvFwd_h__ #define DatabaseEnvFwd_h__ +#include "AsyncCallbackProcessorFwd.h" #include #include @@ -48,9 +49,7 @@ using PreparedQueryResultFuture = std::future; using PreparedQueryResultPromise = std::promise; class QueryCallback; - -template -class AsyncCallbackProcessor; +bool InvokeAsyncCallbackIfReady(QueryCallback& callback); using QueryCallbackProcessor = AsyncCallbackProcessor; @@ -63,6 +62,7 @@ template class Transaction; class TransactionCallback; +bool InvokeAsyncCallbackIfReady(TransactionCallback& callback); template using SQLTransaction = std::shared_ptr>; @@ -83,6 +83,7 @@ using LoginDatabaseQueryHolder = SQLQueryHolder; using WorldDatabaseQueryHolder = SQLQueryHolder; class SQLQueryHolderCallback; +bool InvokeAsyncCallbackIfReady(SQLQueryHolderCallback& callback); // mysql struct MySQLHandle; diff --git a/src/server/database/Database/QueryCallback.h b/src/server/database/Database/QueryCallback.h index 6cc315964b7..bfdb674e072 100644 --- a/src/server/database/Database/QueryCallback.h +++ b/src/server/database/Database/QueryCallback.h @@ -66,4 +66,6 @@ private: std::queue> _callbacks; }; +inline bool InvokeAsyncCallbackIfReady(QueryCallback& callback) { return callback.InvokeIfReady(); } + #endif // _QUERY_CALLBACK_H diff --git a/src/server/database/Database/QueryHolder.h b/src/server/database/Database/QueryHolder.h index 25687fedd81..3a461011c72 100644 --- a/src/server/database/Database/QueryHolder.h +++ b/src/server/database/Database/QueryHolder.h @@ -85,4 +85,6 @@ public: std::function m_callback; }; +inline bool InvokeAsyncCallbackIfReady(SQLQueryHolderCallback& callback) { return callback.InvokeIfReady(); } + #endif diff --git a/src/server/database/Database/Transaction.h b/src/server/database/Database/Transaction.h index 2d1ba4da14f..7d7ae17dfca 100644 --- a/src/server/database/Database/Transaction.h +++ b/src/server/database/Database/Transaction.h @@ -120,4 +120,6 @@ public: std::function m_callback; }; +inline bool InvokeAsyncCallbackIfReady(TransactionCallback& callback) { return callback.InvokeIfReady(); } + #endif -- cgit v1.2.3