1
This commit is contained in:
parent
b3f165760b
commit
c68e482dd8
@ -18,6 +18,14 @@
|
||||
#include "downstreammgr.h"
|
||||
#include "GCListener.h"
|
||||
|
||||
struct HttpTunnelRequest
|
||||
{
|
||||
int socket_handle = 0;
|
||||
long long context_id = 0;
|
||||
std::shared_ptr<f8::JsonHttpRequest> request;
|
||||
};
|
||||
|
||||
|
||||
class RequestTarget
|
||||
{
|
||||
public:
|
||||
@ -234,18 +242,26 @@ std::shared_ptr<RequestTarget> MasterMgr::GetRequestByContextId(long long contex
|
||||
|
||||
void MasterMgr::AddHttpTunnelRequest(int socket_handle, std::shared_ptr<f8::JsonHttpRequest> request)
|
||||
{
|
||||
pending_http_tunnel_socket_hash_[socket_handle] = request;
|
||||
++curr_context_id_;
|
||||
auto req = std::make_shared<HttpTunnelRequest>();
|
||||
req->socket_handle = socket_handle;
|
||||
req->context_id = curr_context_id_;
|
||||
req->request = request;
|
||||
|
||||
pending_http_tunnel_socket_hash_[socket_handle] = req;
|
||||
pending_http_tunnel_context_hash_[curr_context_id_] = req;
|
||||
}
|
||||
|
||||
void MasterMgr::RemoveHttpTunnelRequest(int socket_handle)
|
||||
{
|
||||
auto req = GetHttpTunnelRequest(socket_handle);
|
||||
if (req) {
|
||||
pending_http_tunnel_socket_hash_.end();
|
||||
pending_http_tunnel_socket_hash_.erase(req->socket_handle);
|
||||
pending_http_tunnel_context_hash_.erase(req->context_id);
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<f8::JsonHttpRequest> MasterMgr::GetHttpTunnelRequest(int socket_handle)
|
||||
std::shared_ptr<HttpTunnelRequest> MasterMgr::GetHttpTunnelRequest(int socket_handle)
|
||||
{
|
||||
auto itr = pending_http_tunnel_socket_hash_.find(socket_handle);
|
||||
return itr != pending_http_tunnel_socket_hash_.end() ? itr->second : nullptr;
|
||||
|
@ -11,6 +11,7 @@ namespace ss
|
||||
class SS_MS_HttpTunnelResponse;
|
||||
}
|
||||
|
||||
struct HttpTunnelRequest;
|
||||
class RequestTarget;
|
||||
class Master;
|
||||
class MasterMgr : public a8::Singleton<MasterMgr>
|
||||
@ -40,7 +41,7 @@ class MasterMgr : public a8::Singleton<MasterMgr>
|
||||
void AddHttpTunnelRequest(int socket_handle, std::shared_ptr<f8::JsonHttpRequest> request);
|
||||
|
||||
private:
|
||||
std::shared_ptr<f8::JsonHttpRequest> GetHttpTunnelRequest(int socket_handle);
|
||||
std::shared_ptr<HttpTunnelRequest> 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);
|
||||
@ -53,5 +54,6 @@ class MasterMgr : public a8::Singleton<MasterMgr>
|
||||
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_;
|
||||
std::map<int, std::shared_ptr<HttpTunnelRequest>> pending_http_tunnel_socket_hash_;
|
||||
std::map<long long, std::shared_ptr<HttpTunnelRequest>> pending_http_tunnel_context_hash_;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user