relation/server/imserver/asynctaskmgr.h
aozhiwei cfdc081b40 1
2020-07-01 11:24:08 +08:00

41 lines
977 B
C++

#pragma once
namespace ss
{
class SS_IM_PushUserOnlineState;
}
enum AsyncTaskType
{
kAttQueryUserStatus = 0,
kAttMax
};
struct QueryUserStatusTask;
struct RecommandFriendTask;
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 _SS_IM_PushUserOnlineState(f8::MsgHdr& hdr, const ss::SS_IM_PushUserOnlineState& msg);
private:
QueryUserStatusTask* GetQueryUserStatusTask(long long seqid);
void RemoveQueryUserStatusTask(long long seqid);
RecommandFriendTask* GetRecommandFriendTask(long long seqid);
void RemoveRecommandFriendTask(long long seqid);
private:
std::map<long long, QueryUserStatusTask*> query_user_status_tasks_;
std::map<long long, RecommandFriendTask*> recommand_friend_tasks_;
};