lichao
2021-04-02 c28cdf2fbf1565709b359c9cca6c5e29d9592dce
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 {