aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/QueryHolder.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-07-31 23:27:26 +0200
committerShauren <shauren.trinity@gmail.com>2020-07-31 23:27:26 +0200
commit9b806c6b5d9e83f8614523317a44742954f97744 (patch)
treedca12764c8d99ea0d49d4952c283ec7a1589db76 /src/server/database/Database/QueryHolder.h
parent7cf122fc2a604bae77d0b935536c41ec9203e62d (diff)
Core/DBLayer: Add nicer api for SQLQueryHolders
Diffstat (limited to 'src/server/database/Database/QueryHolder.h')
-rw-r--r--src/server/database/Database/QueryHolder.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/database/Database/QueryHolder.h b/src/server/database/Database/QueryHolder.h
index fe4a0e78331..f94eff49d2c 100644
--- a/src/server/database/Database/QueryHolder.h
+++ b/src/server/database/Database/QueryHolder.h
@@ -63,4 +63,23 @@ class TC_DATABASE_API SQLQueryHolderTask : public SQLOperation
QueryResultHolderFuture GetFuture() { return m_result.get_future(); }
};
+class TC_DATABASE_API SQLQueryHolderCallback
+{
+public:
+ SQLQueryHolderCallback(QueryResultHolderFuture&& future) : m_future(std::move(future)) { }
+ SQLQueryHolderCallback(SQLQueryHolderCallback&&) = default;
+
+ SQLQueryHolderCallback& operator=(SQLQueryHolderCallback&&) = default;
+
+ void AfterComplete(std::function<void(SQLQueryHolderBase*)> callback) &
+ {
+ m_callback = std::move(callback);
+ }
+
+ bool InvokeIfReady();
+
+ QueryResultHolderFuture m_future;
+ std::function<void(SQLQueryHolderBase*)> m_callback;
+};
+
#endif