lichao
2021-05-19 34cd75f77d0ca94dbdba4e6cc9451fe4d33e78b3
src/defs.h
@@ -19,15 +19,29 @@
#ifndef DEFS_KP8LKGD0
#define DEFS_KP8LKGD0
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include "robust.h"
#include <atomic>
#include <string>
typedef boost::uuids::uuid MQId;
typedef uint64_t MQId;
const MQId &BHTopicBusAddress();
const MQId &BHTopicCenterAddress();
const MQId &BHUniCenterAddress();
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 = '.';
@@ -36,9 +50,23 @@
class SharedMemory;
} // namespace bhome_shm
std::string BHomeShmName();
bhome_shm::SharedMemory &BHomeShm();
CenterInfo *GetCenterInfo(bhome_shm::SharedMemory &shm);
bool CenterInit(bhome_shm::SharedMemory &shm);
bool GlobalInit(bhome_shm::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 &BHGlobalSenderAddress();
const MQInfo &BHTopicCenterAddress();
const MQInfo &BHTopicBusAddress();
bool BHNodeInit(const int64_t request, int64_t &reply);
void BHCenterHandleInit(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