/* * ===================================================================================== * * Filename: center.cpp * * Description: * * Version: 1.0 * Created: 2021年03月30日 16时19分37秒 * Revision: none * Compiler: gcc * * Author: Li Chao (), * Organization: * * ===================================================================================== */ #include "center.h" #include "defs.h" #include "pubsub_center.h" #include "reqrep_center.h" #include "shm.h" using namespace bhome_shm; typedef BHCenter::MsgHandler Handler; Handler Join(Handler h1, Handler h2) { return [h1, h2](ShmSocket &socket, bhome_msg::MsgI &imsg, bhome::msg::BHMsg &msg) { return h1(socket, imsg, msg) || h2(socket, imsg, msg); }; } SharedMemory &BHomeShm() { static SharedMemory shm("bhome_default_shm_v0", 1024 * 1024 * 64); return shm; } BHCenter::BHCenter(Socket::Shm &shm) : socket_(shm, &BHUniCenter(), 1000) {} BHCenter::BHCenter() : BHCenter(BHomeShm()) {} bool BHCenter::Start() { auto onCenter = MakeReqRepCenter(); auto onBus = MakeBusCenter(); socket_.Start(Join(onCenter, onBus)); }