| | |
| | | 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()) {} |
| | |
| | | { |
| | | 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; |
| | | } |