From d1f89c1eb52a08b97d5be5dd991c5991b6f0bf93 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期三, 21 四月 2021 16:41:30 +0800 Subject: [PATCH] 修改包名,作为go依赖库 --- src/topic_node.h | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/topic_node.h b/src/topic_node.h index 35cdde5..8287b4a 100644 --- a/src/topic_node.h +++ b/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_; }; -- Gitblit v1.8.0