From 3e9f5b869dd32441fdd3d77091cb33ef4301f244 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期二, 06 四月 2021 20:26:20 +0800 Subject: [PATCH] use BHCenter. --- src/center.cpp | 36 +++++++++++++++++++++++++++++++++--- 1 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/center.cpp b/src/center.cpp index d0e61a2..a3897fb 100644 --- a/src/center.cpp +++ b/src/center.cpp @@ -37,8 +37,24 @@ return shm; } -BHCenter::BHCenter(Socket::Shm &shm) : - socket_(shm, &BHUniCenter(), 1000) {} +BHCenter::CenterRecords &BHCenter::Centers() +{ + static CenterRecords rec; + return rec; +} +bool BHCenter::Install(const std::string &name, MsgHandler handler, const std::string &mqid, const int mq_len) +{ + CenterRecords()[name] = CenterInfo{name, handler, mqid, mq_len}; +} + +BHCenter::BHCenter(Socket::Shm &shm) +{ + sockets_["center"] = std::make_shared<ShmSocket>(shm, &BHTopicCenterAddress(), 1000); + sockets_["bus"] = std::make_shared<ShmSocket>(shm, &BHTopicBusAddress(), 1000); + for (auto &kv : Centers()) { + sockets_[kv.first] = std::make_shared<ShmSocket>(shm, kv.second.mqid_.data(), kv.second.mq_len_); + } +} BHCenter::BHCenter() : BHCenter(BHomeShm()) {} @@ -47,6 +63,20 @@ { auto onCenter = MakeReqRepCenter(); auto onBus = MakeBusCenter(); + sockets_["center"]->Start(onCenter); + sockets_["bus"]->Start(onBus); - socket_.Start(Join(onCenter, onBus)); + for (auto &kv : Centers()) { + sockets_[kv.first]->Start(kv.second.handler_); + } + return true; + // socket_.Start(Join(onCenter, onBus)); +} + +bool BHCenter::Stop() +{ + for (auto &kv : sockets_) { + kv.second->Stop(); + } + return true; } \ No newline at end of file -- Gitblit v1.8.0