Core/DBLayer: Convert async queries to new query callbacks and remove old callback handling

(cherry picked from commit 8e2634b2b4)

Conflicts:
	src/server/bnetserver/Server/Session.cpp
	src/server/bnetserver/Server/Session.h
	src/server/database/Database/QueryCallback.cpp
	src/server/game/Handlers/CharacterHandler.cpp
	src/server/game/Handlers/SocialHandler.cpp
	src/server/game/Server/WorldSession.cpp
	src/server/game/Server/WorldSession.h
	src/server/game/Server/WorldSocket.cpp
	src/server/game/Server/WorldSocket.h
	src/server/game/World/World.cpp
	src/server/game/World/World.h
This commit is contained in:
Shauren
2017-01-13 21:38:03 +01:00
committed by ariel-
parent 8af3cccc83
commit 4c27203c8f
21 changed files with 561 additions and 827 deletions

View File

@@ -27,15 +27,22 @@ QueryCallbackProcessor::~QueryCallbackProcessor()
{
}
void QueryCallbackProcessor::AddQuery(QueryCallbackNew&& query)
void QueryCallbackProcessor::AddQuery(QueryCallback&& query)
{
_callbacks.emplace_back(std::move(query));
}
void QueryCallbackProcessor::ProcessReadyQueries()
{
_callbacks.erase(std::remove_if(_callbacks.begin(), _callbacks.end(), [](QueryCallbackNew& callback)
if (_callbacks.empty())
return;
std::vector<QueryCallback> updateCallbacks{ std::move(_callbacks) };
updateCallbacks.erase(std::remove_if(updateCallbacks.begin(), updateCallbacks.end(), [](QueryCallback& callback)
{
return callback.InvokeIfReady() == QueryCallbackNew::Completed;
}), _callbacks.end());
return callback.InvokeIfReady() == QueryCallback::Completed;
}), updateCallbacks.end());
_callbacks.insert(_callbacks.end(), std::make_move_iterator(updateCallbacks.begin()), std::make_move_iterator(updateCallbacks.end()));
}