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