lichao
2021-04-21 faa795164368ec444410374699548bb27b0d95ce
src/topic_node.h
@@ -20,6 +20,7 @@
#include "msg.h"
#include "socket.h"
#include <atomic>
#include <memory>
using namespace bhome_shm;
@@ -112,14 +113,21 @@
   ShmSocket &SockSub() { return sock_sub_; }
   ShmSocket &SockClient() { return sock_client_; }
   ShmSocket &SockServer() { return sock_server_; }
   bool IsRegistered() const { return registered_.load(); }
   ShmSocket sock_node_;
   ShmSocket sock_client_;
   ShmSocket sock_server_;
   ShmSocket sock_sub_;
   std::atomic<bool> registered_;
   std::atomic<bool> registered_ever_;
   enum State {
      eStateUnregistered,
      eStateOnline,
      eStateOffline // heartbeat fail.
   };
   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() const { return state() == eStateOnline; }
   std::atomic<State> state_;
   TopicQueryCache topic_query_cache_;
};