lichao
2021-05-18 60b9594fa3ea5c96e3d90a138ac3854705e1a74e
src/topic_node.h
@@ -78,7 +78,7 @@
   MQId ssn() { return SockNode().id(); }
   bool ClientQueryRPCTopic(const Topic &topic, BHAddress &addr, const int timeout_ms);
   typedef MsgQueryTopicReply::BHNodeAddress NodeAddress;
   int QueryRPCTopics(const Topic &topic, std::vector<NodeAddress> &addr, const int timeout_ms);
   int QueryTopicServers(const Topic &topic, std::vector<NodeAddress> &addr, const int timeout_ms);
   const std::string &proc_id() { return info_.proc_id(); }
   typedef BHAddress Address;
@@ -130,7 +130,16 @@
   ShmSocket &SockClient() { return *sockets_[eSockClient]; }
   ShmSocket &SockServer() { return *sockets_[eSockServer]; }
   void SetProcIndex(int index)
   {
      proc_index_ = index;
      for (int i = eSockStart; i < eSockEnd; ++i) {
         sockets_[i]->SetNodeProc(index, i);
      }
   }
   enum State {
      eStateUninited,
      eStateUnregistered,
      eStateOnline,
      eStateOffline // heartbeat fail.
@@ -138,12 +147,13 @@
   void state(const State st) { state_.store(st); }
   void state_cas(State expected, const State val) { state_.compare_exchange_strong(expected, val); }
   State state() const { return state_.load(); }
   bool IsOnline() { return Init() && state() == eStateOnline; }
   bool IsOnline() { return state() == eStateOnline; }
   bool Init();
   bool Valid() const { return !sockets_.empty(); }
   std::mutex mutex_;
   MQId ssn_id_ = 0;
   std::atomic<State> state_;
   int proc_index_ = -1;
   TopicQueryCache topic_query_cache_;
};