163 lines
4.1 KiB
C++
163 lines
4.1 KiB
C++
#ifndef RAGNAROK_SOURCE_CONTENTS_ASYNCWORKMGR_H
|
|
#define RAGNAROK_SOURCE_CONTENTS_ASYNCWORKMGR_H
|
|
|
|
#include "Contents/AdvenPartyInfo.h"
|
|
#include "Utility/NAsyncWorkMgr.h"
|
|
|
|
class CAsyncWorkRecycleObjectPoolMgr;
|
|
class CConnection;
|
|
class CEmblemDataMgr;
|
|
class CMCStoreInfoBackup;
|
|
class WindowManagerWindows;
|
|
struct AccountConfigLoad;
|
|
struct CharacterConfigLoad;
|
|
struct EmblemUploadContext;
|
|
struct StoreBackupContext;
|
|
struct RegisterPartyContext;
|
|
struct StopRecruitingContext;
|
|
struct PartyInfoContext;
|
|
|
|
// RTTI CAsyncWorkMgr, original x86 size 40. Work binding contexts expose
|
|
// original global dependencies without changing the queue/pool owner.
|
|
class CAsyncWorkMgr : public NAsyncWorkMgr {
|
|
public:
|
|
explicit CAsyncWorkMgr(std::uint32_t workers);
|
|
~CAsyncWorkMgr() override;
|
|
static bool Initialize(std::uint32_t workers);
|
|
static void Shutdown();
|
|
|
|
void LoadAccount(std::uint32_t accountId, std::string world, std::string url, AccountConfigLoad& context);
|
|
void SaveAccount(std::uint32_t accountId, std::string world, std::string url, std::string token, std::string data);
|
|
void ChangePartyMaster(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string characterName,
|
|
std::uint32_t targetAccountId,
|
|
std::uint32_t targetCharacterId,
|
|
std::string targetName,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
WindowManagerWindows& windows
|
|
);
|
|
void LoadCharacter(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
CharacterConfigLoad& context
|
|
);
|
|
void SaveCharacter(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
std::string data
|
|
);
|
|
void DownloadEmblem(
|
|
std::string url,
|
|
std::uint32_t accountId,
|
|
std::string token,
|
|
std::string world,
|
|
std::uint32_t guildId,
|
|
std::uint32_t version,
|
|
CConnection& connection
|
|
);
|
|
void UploadEmblem(
|
|
std::string url,
|
|
std::uint32_t accountId,
|
|
std::string token,
|
|
std::string world,
|
|
std::uint32_t guildId,
|
|
std::string path,
|
|
CEmblemDataMgr& owner,
|
|
EmblemUploadContext& context
|
|
);
|
|
void LoadMyParty(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
WindowManagerWindows& windows
|
|
);
|
|
void LoadPartyInfo(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
std::uint32_t queryAccountId,
|
|
PartyInfoContext& context
|
|
);
|
|
void LoadPartyList(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
int search,
|
|
CAdvenPartyInfo filter,
|
|
int page,
|
|
WindowManagerWindows& windows
|
|
);
|
|
void LoadStore(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
int type,
|
|
CMCStoreInfoBackup& owner,
|
|
StoreBackupContext& context
|
|
);
|
|
void SaveStore(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
std::string data,
|
|
int type,
|
|
CMCStoreInfoBackup& owner,
|
|
StoreBackupContext& context
|
|
);
|
|
void RegisterParty(
|
|
std::uint32_t accountId,
|
|
std::uint32_t characterId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
CAdvenPartyInfo info,
|
|
RegisterPartyContext& context
|
|
);
|
|
void StopRecruiting(
|
|
std::uint32_t accountId,
|
|
std::string world,
|
|
std::string url,
|
|
std::string token,
|
|
std::uint32_t masterAccountId,
|
|
StopRecruitingContext& context
|
|
);
|
|
|
|
// Source view of the original pool-owner field, for direct owner operations.
|
|
CAsyncWorkRecycleObjectPoolMgr& Pools() {
|
|
return *this->m_pools;
|
|
}
|
|
|
|
private:
|
|
/* 0020 */ bool m_ready;
|
|
/* 0024 */ CAsyncWorkRecycleObjectPoolMgr* m_pools;
|
|
};
|
|
|
|
// STATIC: 0x0138968C
|
|
// GLOBAL: gl_24349
|
|
extern CAsyncWorkMgr* g_asyncWorkMgr;
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(CAsyncWorkMgr) == 40);
|
|
#endif
|
|
|
|
#endif
|