#pragma once namespace f8 { struct MsgHdr; } namespace ss { class SS_MS_ResponseTargetServer; } class MasterSvr; class MasterSvrMgr : public a8::Singleton { public: enum { HID = HID_MasterSvrMgr }; private: MasterSvrMgr() {}; friend class a8::Singleton; public: void Init(); void UnInit(); void _SS_MS_ResponseTargetServer(f8::MsgHdr& hdr, const ss::SS_MS_ResponseTargetServer& msg); void RequestTargetServer(f8::MsgHdr& hdr, const std::string& team_id, const std::string& account_id, const std::string& server_info, int is_reconnect, int proto_version); void RemoveRequest(int socket_handle, long long context_id, bool auto_free); private: long long GetContextIdBySocket(int socket_handle); f8::MsgHdr* GetHdrByContextId(long long context_id); MasterSvr* GetConnById(int instance_id); private: int target_conn_id_ = 100; long long curr_context_id_ = 0; std::map mastersvr_hash_; std::map pending_socket_hash_; std::map pending_request_hash_; };