/* * ===================================================================================== * * Filename: center.h * * Description: * * Version: 1.0 * Created: 2021年03月30日 16时22分24秒 * Revision: none * Compiler: gcc * * Author: Li Chao (), * Organization: * * ===================================================================================== */ #ifndef CENTER_TM9OUQTG #define CENTER_TM9OUQTG #include "shm_socket.h" #include #include #include class CenterTopicNode; class TcpServer; class TcpProxy; class IoService; class BHCenter { typedef ShmSocket Socket; public: typedef Socket::PartialRecvCB MsgHandler; typedef Socket::RawRecvCB RawHandler; typedef Socket::IdleCB IdleHandler; static bool Install(const std::string &name, MsgHandler handler, RawHandler raw_handler, IdleHandler idle, const MQInfo &mq, const int mq_len); BHCenter(Socket::Shm &shm); ~BHCenter(); bool Start(); bool Stop(); private: struct CenterInfo { std::string name_; MsgHandler handler_; RawHandler raw_handler_; IdleHandler idle_; MQInfo mq_; int mq_len_ = 0; }; typedef std::map CenterRecords; static CenterRecords &Centers(); std::map> sockets_; std::unique_ptr topic_node_; std::unique_ptr io_service_; std::unique_ptr tcp_server_; std::unique_ptr tcp_proxy_; }; #endif // end of include guard: CENTER_TM9OUQTG