From 11f6c600e55ca5677f93624efe44d2605cdd908d Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期五, 21 五月 2021 20:18:38 +0800 Subject: [PATCH] reserve #,@ prefix for internal proc id and topic. --- src/defs.h | 47 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/defs.h b/src/defs.h index a95c81f..b117579 100644 --- a/src/defs.h +++ b/src/defs.h @@ -19,18 +19,30 @@ #ifndef DEFS_KP8LKGD0 #define DEFS_KP8LKGD0 +#include "robust.h" +#include <atomic> #include <string> +class ShmSocket; typedef uint64_t MQId; -const MQId kBHNodeInit = 10; -const MQId kBHTopicCenter = 100; -const MQId kBHTopicBus = 101; -const MQId kBHUniCenter = 102; -inline const MQId BHInitAddress() { return kBHNodeInit; } -inline const MQId BHTopicCenterAddress() { return kBHTopicCenter; } -inline const MQId BHTopicBusAddress() { return kBHTopicBus; } -inline const MQId BHUniCenterAddress() { return kBHUniCenter; } +int64_t CalcAllocIndex(int64_t size); +int64_t GetAllocSize(int index); + +struct MQInfo { + MQId id_ = 0; + int64_t offset_ = 0; +}; + +struct CenterInfo { + MQInfo mq_center_; + MQInfo mq_bus_; + MQInfo mq_sender_; + robust::AtomicReqRep init_rr_; + std::atomic<MQId> mqid_; + CenterInfo() : + mqid_(100000) {} +}; const int kBHCenterPort = 24287; const char kTopicSep = '.'; @@ -39,12 +51,27 @@ class SharedMemory; } // namespace bhome_shm +using bhome_shm::SharedMemory; + std::string BHomeShmName(); -bhome_shm::SharedMemory &BHomeShm(); -bool GlobalInit(bhome_shm::SharedMemory &shm); +SharedMemory &BHomeShm(); +CenterInfo *GetCenterInfo(SharedMemory &shm); +ShmSocket &DefaultSender(SharedMemory &shm); + +MQId NewSession(); +bool CenterInit(SharedMemory &shm); +bool GlobalInit(SharedMemory &shm); typedef std::string Topic; void SetLastError(const int ec, const std::string &msg); void GetLastError(int &ec, std::string &msg); //TODO center can check shm for previous crash. +const MQInfo &BHTopicCenterAddress(SharedMemory &shm); +const MQInfo &BHTopicBusAddress(SharedMemory &shm); +bool BHNodeInit(SharedMemory &shm, const int64_t request, int64_t &reply); +void BHCenterHandleInit(SharedMemory &shm, std::function<int64_t(const int64_t)> const &onReq); + +// node mq is avail with in timeout; after that may get killed. +int NodeTimeoutSec(); + #endif // end of include guard: DEFS_KP8LKGD0 -- Gitblit v1.8.0