relation/server/imserver/asynctaskmgr.h
2020-06-30 20:04:34 +08:00

37 lines
759 B
C++

#pragma once
namespace ss
{
class SS_IM_PushUserOnlineState;
}
enum AsyncTaskType
{
kAttQueryUserStatus = 0,
kAttMax
};
struct QueryUserStatusTask;
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);
private:
std::map<long long, QueryUserStatusTask*> query_user_status_tasks_;
};