From c28cdf2fbf1565709b359c9cca6c5e29d9592dce Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期五, 02 四月 2021 15:51:20 +0800 Subject: [PATCH] typedef Topic. --- src/reqrep.cpp | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/reqrep.cpp b/src/reqrep.cpp index bed6496..b8e423b 100644 --- a/src/reqrep.cpp +++ b/src/reqrep.cpp @@ -55,7 +55,7 @@ return Start(AsyncRecvProc, nworker); } -bool SocketRequest::AsyncRequest(const std::string &topic, const void *data, const size_t size, const int timeout_ms, const RequestResultCB &cb) +bool SocketRequest::AsyncRequest(const Topic &topic, const void *data, const size_t size, const int timeout_ms, const RequestResultCB &cb) { auto Call = [&](const void *remote) { const BHMsg &msg(MakeRequest(mq().Id(), topic, data, size)); @@ -82,7 +82,7 @@ } } -bool SocketRequest::SyncRequest(const std::string &topic, const void *data, const size_t size, std::string &out, const int timeout_ms) +bool SocketRequest::SyncRequest(const Topic &topic, const void *data, const size_t size, std::string &out, const int timeout_ms) { try { BHAddress addr; @@ -153,10 +153,9 @@ } } -bool SocketRequest::QueryRPCTopic(const std::string &topic, bhome::msg::BHAddress &addr, const int timeout_ms) +bool SocketRequest::QueryRPCTopic(const Topic &topic, bhome::msg::BHAddress &addr, const int timeout_ms) { - if (tmp_cache_.first == topic) { - addr = tmp_cache_.second; + if (topic_cache_.Find(topic, addr)) { return true; } @@ -167,9 +166,12 @@ DataProcQueryTopicReply reply; if (reply.ParseFromString(result.body())) { addr = reply.address(); - tmp_cache_.first = topic; - tmp_cache_.second = addr; - return !addr.mq_id().empty(); + if (addr.mq_id().empty()) { + return false; + } else { + topic_cache_.Update(topic, addr); + return true; + } } } } else { -- Gitblit v1.8.0