From 4e5cb7960ce4e7e66d5190be67426aeca8b55c3d Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期五, 09 四月 2021 18:45:08 +0800
Subject: [PATCH] add heartbeat, not tested yet.

---
 src/topic_node.cpp |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/topic_node.cpp b/src/topic_node.cpp
index d76c03a..5afec3f 100644
--- a/src/topic_node.cpp
+++ b/src/topic_node.cpp
@@ -92,9 +92,17 @@
 	SockNode().Stop();
 }
 
-bool TopicNode::Register(const MsgRegister &body, MsgCommonReply &reply_body, const int timeout_ms)
+bool TopicNode::Register(ProcInfo &proc, MsgCommonReply &reply_body, const int timeout_ms)
 {
 	auto &sock = SockNode();
+	MsgRegister body;
+	*body.mutable_proc() = proc;
+	auto AddId = [&](const MQId &id) { body.add_addrs()->set_mq_id(&id, sizeof(id)); };
+	AddId(SockNode().id());
+	AddId(SockServer().id());
+	AddId(SockClient().id());
+	AddId(SockSub().id());
+	AddId(SockPub().id());
 
 	auto head(InitMsgHead(GetType(body), body.proc().proc_id()));
 	AddRoute(head, sock.id());
@@ -110,10 +118,12 @@
 	return r;
 }
 
-bool TopicNode::RegisterRPC(const MsgRegisterRPC &body, MsgCommonReply &reply_body, const int timeout_ms)
+bool TopicNode::ServerRegisterRPC(MsgTopicList &topics, MsgCommonReply &reply_body, const int timeout_ms)
 {
 	//TODO check registered
 	auto &sock = SockServer();
+	MsgRegisterRPC body;
+	body.mutable_topics()->Swap(&topics);
 
 	auto head(InitMsgHead(GetType(body), proc_id()));
 	AddRoute(head, sock.id());
@@ -361,14 +371,13 @@
 
 // subscribe
 
-bool TopicNode::Subscribe(const std::vector<Topic> &topics, const int timeout_ms)
+bool TopicNode::Subscribe(MsgTopicList &topics, const int timeout_ms)
 {
 	try {
 		auto &sock = SockSub();
 		MsgSubscribe sub;
-		for (auto &topic : topics) {
-			sub.add_topics(topic);
-		}
+		sub.mutable_topics()->Swap(&topics);
+
 		BHMsgHead head(InitMsgHead(GetType(sub), proc_id()));
 		AddRoute(head, sock.id());
 

--
Gitblit v1.8.0