58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
#pragma once
|
|
|
|
namespace f8
|
|
{
|
|
struct MsgHdr;
|
|
}
|
|
|
|
namespace ss
|
|
{
|
|
class SS_MS_ResponseTargetServer;
|
|
class SS_MS_HttpTunnelResponse;
|
|
}
|
|
|
|
class RequestTarget;
|
|
class Master;
|
|
class MasterMgr : public a8::Singleton<MasterMgr>
|
|
{
|
|
public:
|
|
enum { HID = HID_MasterMgr };
|
|
|
|
private:
|
|
MasterMgr() {};
|
|
friend class a8::Singleton<MasterMgr>;
|
|
|
|
public:
|
|
|
|
void Init();
|
|
void UnInit();
|
|
|
|
void _SS_MS_ResponseTargetServer(f8::MsgHdr* hdr, const ss::SS_MS_ResponseTargetServer& msg);
|
|
void _SS_MS_HttpTunnelResponse(f8::MsgHdr* hdr, const ss::SS_MS_HttpTunnelResponse& msg);
|
|
void RequestTargetServer(f8::MsgHdr* hdr,
|
|
const std::string& team_id,
|
|
const std::string& account_id,
|
|
const std::string& session_id,
|
|
const std::string& server_info,
|
|
int is_reconnect,
|
|
int proto_version);
|
|
void RemoveRequest(int socket_handle);
|
|
void AddHttpTunnelRequest(int socket_handle, std::shared_ptr<f8::JsonHttpRequest> request);
|
|
|
|
private:
|
|
std::shared_ptr<f8::JsonHttpRequest> GetHttpTunnelRequest(int socket_handle);
|
|
std::shared_ptr<RequestTarget> GetRequestBySocket(int socket_handle);
|
|
std::shared_ptr<RequestTarget> GetRequestByContextId(long long context_id);
|
|
std::shared_ptr<Master> GetConnById(int instance_id);
|
|
void RemoveHttpTunnelRequest(int socket_handle);
|
|
|
|
private:
|
|
long long curr_context_id_ = 0;
|
|
std::map<int, std::shared_ptr<Master>> mastersvr_hash_;
|
|
|
|
std::map<int, std::shared_ptr<RequestTarget>> pending_socket_hash_;
|
|
std::map<long long, std::shared_ptr<RequestTarget>> pending_context_hash_;
|
|
|
|
std::map<int, std::shared_ptr<f8::JsonHttpRequest>> pending_http_tunnel_socket_hash_;
|
|
};
|