diff options
author | Shauren <shauren.trinity@gmail.com> | 2017-01-13 21:38:03 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-01-13 21:38:03 +0100 |
commit | 8e2634b2b49eb814b8cc425a060b2f160dbb49b7 (patch) | |
tree | 9fc926ba9f77539c3eb847e37f3f9d7061f9d47a /src/server/bnetserver/Server/Session.cpp | |
parent | 0f432edc4b48a8692e41fc30aef7751d295a7176 (diff) |
Core/DBLayer: Convert async queries to new query callbacks and remove old callback handling
Diffstat (limited to 'src/server/bnetserver/Server/Session.cpp')
-rw-r--r-- | src/server/bnetserver/Server/Session.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/server/bnetserver/Server/Session.cpp b/src/server/bnetserver/Server/Session.cpp index 44c6122b2c6..7fe1c4ef865 100644 --- a/src/server/bnetserver/Server/Session.cpp +++ b/src/server/bnetserver/Server/Session.cpp @@ -19,6 +19,7 @@ #include "BattlenetRpcErrorCodes.h" #include "ByteConverter.h" #include "Database/DatabaseEnv.h" +#include "QueryCallback.h" #include "LoginRESTService.h" #include "ProtobufJSON.h" #include "RealmList.h" @@ -91,8 +92,7 @@ void Battlenet::Session::Start() stmt->setString(0, ip_address); stmt->setUInt32(1, inet_addr(ip_address.c_str())); - _queryCallback = std::bind(&Battlenet::Session::CheckIpCallback, this, std::placeholders::_1); - _queryFuture = LoginDatabase.AsyncQuery(stmt); + _queryProcessor.AddQuery(LoginDatabase.AsyncQuery(stmt).WithPreparedCallback(std::bind(&Battlenet::Session::CheckIpCallback, this, std::placeholders::_1))); } void Battlenet::Session::CheckIpCallback(PreparedQueryResult result) @@ -127,12 +127,7 @@ bool Battlenet::Session::Update() if (!BattlenetSocket::Update()) return false; - if (_queryFuture.valid() && _queryFuture.wait_for(std::chrono::seconds(0)) == std::future_status::ready) - { - auto callback = std::move(_queryCallback); - _queryCallback = nullptr; - callback(_queryFuture.get()); - } + _queryProcessor.ProcessReadyQueries(); return true; } |