lichao
2021-04-06 70fec55c71f707358e6dba1b551d7836e93a5c78
src/center.cpp
@@ -17,13 +17,36 @@
 */
#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);
   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));
}