From 58d904a328c0d849769b483e901a0be9426b8209 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期二, 20 七月 2021 20:20:44 +0800 Subject: [PATCH] 调整Request C.BHFree的位置 --- src/topic_node.cpp | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/topic_node.cpp b/src/topic_node.cpp index b21f7ef..6096fbb 100644 --- a/src/topic_node.cpp +++ b/src/topic_node.cpp @@ -50,8 +50,8 @@ } // namespace -TopicNode::TopicNode(SharedMemory &shm) : - shm_(shm), state_(eStateUninited) +TopicNode::TopicNode(SharedMemory &shm, MQId ssn_id) : + shm_(shm), state_(eStateUninited), ssn_id_(ssn_id) { } @@ -569,7 +569,8 @@ reply_head.mutable_proc_id()->swap(out_proc_id); return true; } - } catch (...) { + } catch (std::exception &e) { + LOG_ERROR() << __func__ << " exception: " << e.what(); SetLastError(eError, __func__ + std::string(" internal errer.")); } return false; @@ -627,6 +628,7 @@ auto &sock = SockPub(); BHMsgHead head(InitMsgHead(GetType(pub), proc_id(), ssn())); AddRoute(head, sock); + head.set_topic(pub.topic()); if (timeout_ms == 0) { return sock.Send(BusAddr(), head, pub); @@ -647,7 +649,7 @@ // subscribe -bool TopicNode::Subscribe(MsgTopicList &topics, MsgCommonReply &reply_body, const int timeout_ms) +bool TopicNode::DoSubscribe(MsgTopicList &topics, const bool net, MsgCommonReply &reply_body, const int timeout_ms) { if (!IsOnline()) { SetLastError(eNotRegistered, kErrMsgNotRegistered); @@ -657,6 +659,7 @@ try { auto &sock = SockSub(); MsgSubscribe sub; + sub.set_network(net); sub.mutable_topics()->Swap(&topics); BHMsgHead head(InitMsgHead(GetType(sub), proc_id(), ssn())); @@ -672,7 +675,6 @@ reply.ParseBody(reply_body) && IsSuccess(reply_body.errmsg().errcode()); } - // TODO wait for result? } catch (...) { return false; } @@ -718,12 +720,12 @@ return false; } } - //TODO error msg. if (head.type() == kMsgTypePublish) { if (pub.ParseFromString(body)) { head.mutable_proc_id()->swap(proc_id); return true; } } + SetLastError(eError, "invalid subcribe msg received."); return false; } \ No newline at end of file -- Gitblit v1.8.0