This commit is contained in:
aozhiwei 2020-09-16 16:21:20 +08:00
parent d513ed2f3a
commit 93e29761c8
2 changed files with 22 additions and 8 deletions

View File

@ -14,6 +14,10 @@ public:
long long watch_guild_id = 0;
time_t time = 0;
ss::SS_IM_ForwardGuildCMMsg forward_msg;
virtual ~AsyncGuildTask() {}
virtual void Execute() {}
virtual void OnError() {}
};
class CMGuildInfoTask : public AsyncGuildTask
@ -204,6 +208,23 @@ void GuildMgr::_CMGuildRank(const ss::MFIMMsgConext& context, const cs::CMGuildR
}
void GuildMgr::AddAsyncTask(long long guild_id, AsyncGuildTask* task)
{
Guild* guild = GetGuild(guild_id);
if (guild) {
task->Execute();
delete task;
return;
}
auto itr = task_hash_.find(guild_id);
if (itr != task_hash_.end()) {
itr->second.push_back(task);
} else {
task_hash_[guild_id] = std::list<AsyncGuildTask*>({task});
LoadGuild(guild_id);
}
}
void GuildMgr::LoadGuild(long long guild_id)
{
}

View File

@ -13,14 +13,6 @@ namespace ss
class SS_IM_ForwardGuildCMMsg;
}
namespace google
{
namespace protobuf
{
class Message;
}
}
class Guild;
class AsyncGuildTask;
class GuildMgr : public a8::Singleton<GuildMgr>
@ -44,6 +36,7 @@ class GuildMgr : public a8::Singleton<GuildMgr>
void _CMGuildRank(const ss::MFIMMsgConext& context, const cs::CMGuildRank& msg);
void AddAsyncTask(long long guild_id, AsyncGuildTask* task);
void LoadGuild(long long guild_id);
bool IsValidGuildId(long long guild_id);
Guild* GetGuild(long long group_id);
template <typename T>