diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-07-31 23:27:26 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-07-31 23:27:26 +0200 |
| commit | 9b806c6b5d9e83f8614523317a44742954f97744 (patch) | |
| tree | dca12764c8d99ea0d49d4952c283ec7a1589db76 /src/server/database/Database/QueryHolder.h | |
| parent | 7cf122fc2a604bae77d0b935536c41ec9203e62d (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.h | 19 |
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 |
