From 9243710ca372de26823c2225c7b46b072458c671 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期五, 28 五月 2021 17:18:33 +0800 Subject: [PATCH] tcp proxy requests, need more test. --- box/tcp_connection.h | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) diff --git a/box/tcp_connection.h b/box/tcp_connection.h index 5aa93a4..6e1d0ad 100644 --- a/box/tcp_connection.h +++ b/box/tcp_connection.h @@ -25,25 +25,28 @@ #include <memory> class ShmSocket; +class NodeCenter; +typedef std::shared_ptr<Synced<NodeCenter>> CenterPtr; + class TcpRequest1 : public std::enable_shared_from_this<TcpRequest1> { public: - static void Create(boost::asio::io_context &io, tcp::endpoint const &addr, std::string request, ShmSocket &shm_socket) + static void Create(boost::asio::io_context &io, tcp::endpoint const &addr, std::string request, ReplyCB const &cb) { - std::make_shared<TcpRequest1>(io, addr, std::move(request), shm_socket)->Start(); + std::make_shared<TcpRequest1>(io, addr, std::move(request), cb)->Start(); } - - TcpRequest1(boost::asio::io_context &io, tcp::endpoint const &addr, std::string request, ShmSocket &shm_socket) : - socket_(io), shm_socket_(shm_socket), remote_(addr), request_(std::move(request)) {} + TcpRequest1(boost::asio::io_context &io, tcp::endpoint const &addr, std::string request, ReplyCB const &cb) : + socket_(io), reply_cb_(cb), remote_(addr), request_(std::move(request)) {} void OnError(bserror_t ec); private: void Start(); void Close(); void OnRead(size_t size); + void SendReply(BHMsgHead &head, std::string body_content); tcp::socket socket_; - ShmSocket &shm_socket_; // send reply + ReplyCB reply_cb_; tcp::endpoint remote_; std::string request_; std::vector<char> recv_buffer_; @@ -54,7 +57,6 @@ class TcpReply1 : public std::enable_shared_from_this<TcpReply1> { public: - typedef std::shared_ptr<Synced<NodeCenter>> CenterPtr; static void Create(tcp::socket sock, CenterPtr pscenter) { std::make_shared<TcpReply1>(std::move(sock), pscenter)->Start(); -- Gitblit v1.8.0