/* * ===================================================================================== * * Filename: defs.h * * Description: * * Version: 1.0 * Created: 2021年03月26日 19时26分17秒 * Revision: none * Compiler: gcc * * Author: Li Chao (), * Organization: * * ===================================================================================== */ #ifndef DEFS_KP8LKGD0 #define DEFS_KP8LKGD0 #include "robust.h" #include #include class ShmSocket; typedef uint64_t MQId; 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_; }; const int kBHCenterPort = 24287; const char kTopicSep = '.'; namespace bhome_shm { class SharedMemory; } // namespace bhome_shm using bhome_shm::SharedMemory; std::string BHomeShmName(); SharedMemory &BHomeShm(); CenterInfo *GetCenterInfo(SharedMemory &shm); ShmSocket &DefaultSender(SharedMemory &shm); MQId NewSession(); bool CenterInit(); 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 const &onReq); // node mq is avail with in timeout; after that may get killed. int NodeTimeoutSec(); std::string BHLogDir(); #endif // end of include guard: DEFS_KP8LKGD0