From de13bf426e162ee10cbd5470cec74122d1d4afa0 Mon Sep 17 00:00:00 2001 From: Kargatum Date: Sat, 5 Feb 2022 06:37:11 +0700 Subject: feat(Core/DBLayer): replace `char const*` to `std::string_view` (#10211) * feat(Core/DBLayer): replace `char const*` to `std::string_view` * CString * 1 * chore(Core/Misc): code cleanup * cl * db fix * fmt style sql * to fmt * py * del old * 1 * 2 * 3 * 1 * 1 --- src/server/database/Database/QueryCallback.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/server/database/Database/QueryCallback.cpp') diff --git a/src/server/database/Database/QueryCallback.cpp b/src/server/database/Database/QueryCallback.cpp index a5b70fe704..2dd0525d56 100644 --- a/src/server/database/Database/QueryCallback.cpp +++ b/src/server/database/Database/QueryCallback.cpp @@ -16,6 +16,7 @@ */ #include "QueryCallback.h" +#include "Duration.h" #include "Errors.h" template @@ -66,13 +67,15 @@ public: QueryCallbackData(std::function&& callback) : _string(std::move(callback)), _isPrepared(false) { } QueryCallbackData(std::function&& callback) : _prepared(std::move(callback)), _isPrepared(true) { } - QueryCallbackData(QueryCallbackData&& right) + + QueryCallbackData(QueryCallbackData&& right) noexcept { _isPrepared = right._isPrepared; ConstructActiveMember(this); MoveFrom(this, std::move(right)); } - QueryCallbackData& operator=(QueryCallbackData&& right) + + QueryCallbackData& operator=(QueryCallbackData&& right) noexcept { if (this != &right) { @@ -82,10 +85,13 @@ public: _isPrepared = right._isPrepared; ConstructActiveMember(this); } + MoveFrom(this, std::move(right)); } + return *this; } + ~QueryCallbackData() { DestroyActiveMember(this); } private: @@ -105,19 +111,19 @@ private: }; // Not using initialization lists to work around segmentation faults when compiling with clang without precompiled headers -QueryCallback::QueryCallback(std::future&& result) +QueryCallback::QueryCallback(QueryResultFuture&& result) { _isPrepared = false; Construct(_string, std::move(result)); } -QueryCallback::QueryCallback(std::future&& result) +QueryCallback::QueryCallback(PreparedQueryResultFuture&& result) { _isPrepared = true; Construct(_prepared, std::move(result)); } -QueryCallback::QueryCallback(QueryCallback&& right) +QueryCallback::QueryCallback(QueryCallback&& right) noexcept { _isPrepared = right._isPrepared; ConstructActiveMember(this); @@ -125,7 +131,7 @@ QueryCallback::QueryCallback(QueryCallback&& right) _callbacks = std::move(right._callbacks); } -QueryCallback& QueryCallback::operator=(QueryCallback&& right) +QueryCallback& QueryCallback::operator=(QueryCallback&& right) noexcept { if (this != &right) { @@ -135,9 +141,11 @@ QueryCallback& QueryCallback::operator=(QueryCallback&& right) _isPrepared = right._isPrepared; ConstructActiveMember(this); } + MoveFrom(this, std::move(right)); _callbacks = std::move(right._callbacks); } + return *this; } @@ -198,7 +206,7 @@ bool QueryCallback::InvokeIfReady() if (!_isPrepared) { - if (_string.valid() && _string.wait_for(std::chrono::seconds(0)) == std::future_status::ready) + if (_string.valid() && _string.wait_for(0s) == std::future_status::ready) { QueryResultFuture f(std::move(_string)); std::function cb(std::move(callback._string)); @@ -208,7 +216,7 @@ bool QueryCallback::InvokeIfReady() } else { - if (_prepared.valid() && _prepared.wait_for(std::chrono::seconds(0)) == std::future_status::ready) + if (_prepared.valid() && _prepared.wait_for(0s) == std::future_status::ready) { PreparedQueryResultFuture f(std::move(_prepared)); std::function cb(std::move(callback._prepared)); -- cgit v1.2.3