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