lichao
2021-03-29 6aa7e4c37a70709e7348bd16407c5983a563ed76
src/pubsub.h
@@ -23,18 +23,24 @@
#include <atomic>
#include <mutex>
#include <vector>
#include <unordered_map>
#include <set>
namespace bhome_shm {
// publish/subcribe manager.
class BusManager
{
    SharedMemory &shm_;
    ShmMsgQueue busq_;
    std::atomic<bool> run_;
    std::vector<std::thread> workers_;
    std::mutex mutex_;
    typedef std::set<MQId> Clients;
    std::unordered_map<std::string, Clients> records_;
    bool StopNoLock();
    void OnMsg(const BHMsg &msg);
public:
    BusManager(SharedMemory &shm);
    ~BusManager();