49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
#pragma once
|
|
|
|
namespace cs
|
|
{
|
|
class CMGuildCreate;
|
|
}
|
|
|
|
namespace ss
|
|
{
|
|
class MFIMMsgConext;
|
|
class SS_IM_PushUserOnlineState;
|
|
class SS_IM_RandomUsersResponse;
|
|
}
|
|
|
|
struct QueryUserStatusTask;
|
|
struct RecommandFriendTask;
|
|
struct CreateGuildTask;
|
|
struct AsyncTaskContext;
|
|
class Player;
|
|
class AsyncTaskMgr : public a8::Singleton<AsyncTaskMgr>
|
|
{
|
|
private:
|
|
AsyncTaskMgr() {};
|
|
friend class a8::Singleton<AsyncTaskMgr>;
|
|
|
|
public:
|
|
void Init();
|
|
void UnInit();
|
|
|
|
void CreateQueryUserStatusTask(Player* hum, std::vector<std::string>& account_ids);
|
|
void CreateRecommandFriendTask(Player* hum);
|
|
void CreateNewGuildTask(const ss::MFIMMsgConext& context, const cs::CMGuildCreate& msg);
|
|
|
|
void _SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg);
|
|
void _SS_IM_RandomUsersResponse(f8::MsgHdr& hdr, const ss::SS_IM_RandomUsersResponse& msg);
|
|
|
|
private:
|
|
QueryUserStatusTask* GetQueryUserStatusTask(long long seqid);
|
|
void RemoveQueryUserStatusTask(long long seqid);
|
|
RecommandFriendTask* GetRecommandFriendTask(long long seqid);
|
|
void RemoveRecommandFriendTask(long long seqid);
|
|
void FillAsyncTaskContext(Player* hum, AsyncTaskContext* context, long long seqid);
|
|
|
|
private:
|
|
std::map<long long, QueryUserStatusTask*> query_user_status_tasks_;
|
|
std::map<long long, RecommandFriendTask*> recommand_friend_tasks_;
|
|
std::map<long long, CreateGuildTask*> create_guild_tasks_;
|
|
};
|