From 365c864a587365fe443b11cc0cd7cfc8f8f8eb81 Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期二, 01 六月 2021 11:19:22 +0800
Subject: [PATCH] refactor, clean up useless code.

---
 box/tcp_connection.h |   41 +++++++++++++++++++++++++++++------------
 1 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/box/tcp_connection.h b/box/tcp_connection.h
index b3b8344..6e1d0ad 100644
--- a/box/tcp_connection.h
+++ b/box/tcp_connection.h
@@ -18,46 +18,63 @@
 #ifndef TCP_CONNECTION_H373GIL5
 #define TCP_CONNECTION_H373GIL5
 
+#include "bh_util.h"
+#include "node_center.h"
 #include "tcp_common.h"
 #include <functional>
 #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)
+	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))->Connect();
+		std::make_shared<TcpRequest1>(io, addr, std::move(request), cb)->Start();
 	}
-
-	TcpRequest1(boost::asio::io_context &io, tcp::endpoint const &addr, std::string 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 Connect();
+	void Start();
 	void Close();
-	void SendRequest();
-	void ReadReply();
+	void OnRead(size_t size);
+	void SendReply(BHMsgHead &head, std::string body_content);
 
 	tcp::socket socket_;
+	ReplyCB reply_cb_;
 	tcp::endpoint remote_;
 	std::string request_;
-	std::vector<char> buffer_;
+	std::vector<char> recv_buffer_;
+	size_t recv_len_ = 0;
 };
 
+class NodeCenter;
 class TcpReply1 : public std::enable_shared_from_this<TcpReply1>
 {
 public:
-	static void Create(tcp::socket sock)
+	static void Create(tcp::socket sock, CenterPtr pscenter)
 	{
-		std::make_shared<TcpReply1>(std::move(sock))->Start();
+		std::make_shared<TcpReply1>(std::move(sock), pscenter)->Start();
 	}
 
-	TcpReply1(tcp::socket sock);
-	void Start();
+	TcpReply1(tcp::socket sock, CenterPtr pscenter) :
+	    socket_(std::move(sock)), pscenter_(pscenter) {}
+	void OnError(bserror_t ec);
 
 private:
+	void Start();
+	void Close();
+	void OnRead(size_t size);
+
 	tcp::socket socket_;
+	CenterPtr pscenter_;
 	std::vector<char> recv_buffer_;
+	uint32_t recv_len_ = 0;
 	std::string send_buffer_;
 };
 

--
Gitblit v1.8.0