52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <a8/timer_attacher.h>
|
|
|
|
namespace cs
|
|
{
|
|
class MFGuildBasic;
|
|
}
|
|
|
|
class GuildMgr : public a8::Singleton<GuildMgr>
|
|
{
|
|
private:
|
|
GuildMgr() {};
|
|
friend class a8::Singleton<GuildMgr>;
|
|
|
|
public:
|
|
void Init();
|
|
void UnInit();
|
|
|
|
void __GuildCreate(f8::JsonHttpRequest* request);
|
|
void __GuildSearch(f8::JsonHttpRequest* request);
|
|
void __GuildUpdate(f8::JsonHttpRequest* request);
|
|
void __GuildRank(f8::JsonHttpRequest* request);
|
|
void __GuildConfirmed(f8::JsonHttpRequest* request);
|
|
void __GenTestData(f8::JsonHttpRequest* request);
|
|
|
|
private:
|
|
cs::MFGuildBasic* GetGuildById(long long guild_id);
|
|
cs::MFGuildBasic* GetGuildByName(const std::string& guild_name);
|
|
std::vector<cs::MFGuildBasic*>* GetGuildRank(int gameid);
|
|
void AddGuild(cs::MFGuildBasic* guild);
|
|
void LoadGuild(int instance_id, long long last_idx);
|
|
void SyncGuild(int instance_id);
|
|
void OnOneDBDone(int instance_id);
|
|
void RefreshGuild(long long guild_id);
|
|
void GenGuildRank();
|
|
void ResortRank(std::vector<cs::MFGuildBasic*>& rank_list);
|
|
void UpdateRank(std::vector<cs::MFGuildBasic*>& rank_list, cs::MFGuildBasic* guild);
|
|
void UpdateGuild(cs::MFGuildBasic* new_guild);
|
|
bool CmpGuild(cs::MFGuildBasic* a, cs::MFGuildBasic* b);
|
|
void InstallSyncGuildTimer();
|
|
|
|
private:
|
|
a8::TimerAttacher timer_attacher_;
|
|
bool load_done_ = false;
|
|
std::map<int, int> pending_db_hash_;
|
|
std::map<int, int> sync_db_hash_;
|
|
std::map<long long, cs::MFGuildBasic*> id_hash_;
|
|
std::map<std::string, cs::MFGuildBasic*> name_hash_;
|
|
std::map<int, std::vector<cs::MFGuildBasic*>> sorted_game_guild_list_;
|
|
};
|