Core/DBLayer: Add nicer api for SQLQueryHolders
This commit is contained in:
1 parent
040140b4ea
commit
6d4b396f7b
8 files changed
+52
-17
No files matched your search
@@ -1124,13 +1124,7 @@ void WorldSession::ProcessQueryCallbacks()
|
||||
{
|
||||
_queryProcessor.ProcessReadyCallbacks();
|
||||
_transactionCallbacks.ProcessReadyCallbacks();
|
||||
|
||||
if (_realmAccountLoginCallback.valid() && _realmAccountLoginCallback.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
|
||||
InitializeSessionCallback(static_cast<LoginDatabaseQueryHolder*>(_realmAccountLoginCallback.get()));
|
||||
|
||||
//! HandlePlayerLoginOpcode
|
||||
if (_charLoginCallback.valid() && _charLoginCallback.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
|
||||
HandlePlayerLogin(reinterpret_cast<LoginQueryHolder*>(_charLoginCallback.get()));
|
||||
_queryHolderProcessor.ProcessReadyCallbacks();
|
||||
}
|
||||
|
||||
TransactionCallback& WorldSession::AddTransactionCallback(TransactionCallback&& callback)
|
||||
@@ -1138,6 +1132,11 @@ TransactionCallback& WorldSession::AddTransactionCallback(TransactionCallback&&
|
||||
return _transactionCallbacks.AddCallback(std::move(callback));
|
||||
}
|
||||
|
||||
SQLQueryHolderCallback& WorldSession::AddQueryHolderCallback(SQLQueryHolderCallback&& callback)
|
||||
{
|
||||
return _queryHolderProcessor.AddCallback(std::move(callback));
|
||||
}
|
||||
|
||||
void WorldSession::InitWarden(BigNumber* k, std::string const& os)
|
||||
{
|
||||
if (os == "Win")
|
||||
@@ -1213,10 +1212,13 @@ void WorldSession::InitializeSession()
|
||||
return;
|
||||
}
|
||||
|
||||
_realmAccountLoginCallback = CharacterDatabase.DelayQueryHolder(realmHolder);
|
||||
AddQueryHolderCallback(CharacterDatabase.DelayQueryHolder(realmHolder)).AfterComplete([this](SQLQueryHolderBase* holder)
|
||||
{
|
||||
InitializeSessionCallback(static_cast<AccountInfoQueryHolderPerRealm*>(holder));
|
||||
});
|
||||
}
|
||||
|
||||
void WorldSession::InitializeSessionCallback(LoginDatabaseQueryHolder* realmHolder)
|
||||
void WorldSession::InitializeSessionCallback(CharacterDatabaseQueryHolder* realmHolder)
|
||||
{
|
||||
LoadAccountData(realmHolder->GetPreparedResult(AccountInfoQueryHolderPerRealm::GLOBAL_ACCOUNT_DATA), GLOBAL_CACHE_MASK);
|
||||
LoadTutorialsData(realmHolder->GetPreparedResult(AccountInfoQueryHolderPerRealm::TUTORIALS));
|
||||
|
||||
Reference in new issue
Block a user