This commit is contained in:
aozhiwei 2020-09-16 19:04:50 +08:00
parent 43a25f2922
commit 1cbc7f8c52

View File

@ -17,7 +17,7 @@ public:
ss::SS_IM_ForwardGuildCMMsg forward_msg; ss::SS_IM_ForwardGuildCMMsg forward_msg;
virtual ~AsyncGuildTask() {} virtual ~AsyncGuildTask() {}
virtual void Execute() {} virtual void Execute(Guild* guild) {}
virtual void OnError() {} virtual void OnError() {}
}; };
@ -25,54 +25,106 @@ class CMGuildInfoTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildInfo cmmsg; cs::CMGuildInfo cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildInfo(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildJoinTask : public AsyncGuildTask class CMGuildJoinTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildJoin cmmsg; cs::CMGuildJoin cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildJoin(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildAgreeTask : public AsyncGuildTask class CMGuildAgreeTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildAgree cmmsg; cs::CMGuildAgree cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildAgree(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildAgreeKick : public AsyncGuildTask class CMGuildKickTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildKick cmmsg; cs::CMGuildKick cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildKick(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildQuitTask : public AsyncGuildTask class CMGuildQuitTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildQuit cmmsg; cs::CMGuildQuit cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildQuit(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildDismissTask : public AsyncGuildTask class CMGuildDismissTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildDismiss cmmsg; cs::CMGuildDismiss cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildDismiss(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildRenameTask : public AsyncGuildTask class CMGuildRenameTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildRename cmmsg; cs::CMGuildRename cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildRename(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildMemberListTask : public AsyncGuildTask class CMGuildMemberListTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildMemberList cmmsg; cs::CMGuildMemberList cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildMemberList(socket_handle, forward_msg.context(), cmmsg);
}
}; };
class CMGuildLogTask : public AsyncGuildTask class CMGuildLogTask : public AsyncGuildTask
{ {
private: private:
cs::CMGuildLog cmmsg; cs::CMGuildLog cmmsg;
virtual void Execute(Guild* guild) override
{
guild->_CMGuildLog(socket_handle, forward_msg.context(), cmmsg);
}
}; };
void GuildMgr::Init() void GuildMgr::Init()
@ -212,7 +264,7 @@ void GuildMgr::CreateAsyncTask(int socket_handle, long long guild_id, AsyncGuild
{ {
Guild* guild = GetGuild(guild_id); Guild* guild = GetGuild(guild_id);
if (guild) { if (guild) {
task->Execute(); task->Execute(guild);
delete task; delete task;
return; return;
} }