From 1cbc7f8c52b3f2d409263605927e13ed8caef871 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 16 Sep 2020 19:04:50 +0800 Subject: [PATCH] 1 --- server/imserver/guildmgr.cc | 58 +++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/server/imserver/guildmgr.cc b/server/imserver/guildmgr.cc index b0c8bc9..8569730 100644 --- a/server/imserver/guildmgr.cc +++ b/server/imserver/guildmgr.cc @@ -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; }