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