From b4f7948dfbe991879dca39dc9b3d53056b8a9e81 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 --- 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') diff --git a/src/server/database/Database/DatabaseEnvFwd.h b/src/server/database/Database/DatabaseEnvFwd.h index 18c4216a193..1e36ee0e861 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 struct QueryResultFieldMetadata; @@ -45,9 +46,7 @@ class PreparedResultSet; using PreparedQueryResult = std::shared_ptr; class QueryCallback; - -template -class AsyncCallbackProcessor; +bool InvokeAsyncCallbackIfReady(QueryCallback& callback); using QueryCallbackProcessor = AsyncCallbackProcessor; @@ -57,6 +56,7 @@ template class Transaction; class TransactionCallback; +bool InvokeAsyncCallbackIfReady(TransactionCallback& callback); template using SQLTransaction = std::shared_ptr>; @@ -77,6 +77,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 72b4ca1202a..efb76d75219 100644 --- a/src/server/database/Database/QueryCallback.h +++ b/src/server/database/Database/QueryCallback.h @@ -57,4 +57,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 a0a0b2b2d0f..e274a7b1165 100644 --- a/src/server/database/Database/QueryHolder.h +++ b/src/server/database/Database/QueryHolder.h @@ -79,4 +79,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 9c4284b49c8..da7fafb5a1a 100644 --- a/src/server/database/Database/Transaction.h +++ b/src/server/database/Database/Transaction.h @@ -122,4 +122,6 @@ public: std::function m_callback; }; +inline bool InvokeAsyncCallbackIfReady(TransactionCallback& callback) { return callback.InvokeIfReady(); } + #endif -- cgit v1.2.3