1
This commit is contained in:
parent
d513ed2f3a
commit
93e29761c8
@ -14,6 +14,10 @@ public:
|
|||||||
long long watch_guild_id = 0;
|
long long watch_guild_id = 0;
|
||||||
time_t time = 0;
|
time_t time = 0;
|
||||||
ss::SS_IM_ForwardGuildCMMsg forward_msg;
|
ss::SS_IM_ForwardGuildCMMsg forward_msg;
|
||||||
|
|
||||||
|
virtual ~AsyncGuildTask() {}
|
||||||
|
virtual void Execute() {}
|
||||||
|
virtual void OnError() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
class CMGuildInfoTask : public AsyncGuildTask
|
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)
|
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)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -13,14 +13,6 @@ namespace ss
|
|||||||
class SS_IM_ForwardGuildCMMsg;
|
class SS_IM_ForwardGuildCMMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace google
|
|
||||||
{
|
|
||||||
namespace protobuf
|
|
||||||
{
|
|
||||||
class Message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Guild;
|
class Guild;
|
||||||
class AsyncGuildTask;
|
class AsyncGuildTask;
|
||||||
class GuildMgr : public a8::Singleton<GuildMgr>
|
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 _CMGuildRank(const ss::MFIMMsgConext& context, const cs::CMGuildRank& msg);
|
||||||
|
|
||||||
void AddAsyncTask(long long guild_id, AsyncGuildTask* task);
|
void AddAsyncTask(long long guild_id, AsyncGuildTask* task);
|
||||||
|
void LoadGuild(long long guild_id);
|
||||||
bool IsValidGuildId(long long guild_id);
|
bool IsValidGuildId(long long guild_id);
|
||||||
Guild* GetGuild(long long group_id);
|
Guild* GetGuild(long long group_id);
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user