⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multicaster.h

📁 著名的uncle Bob的Agile software development的代码
💻 H
字号:

#ifndef MULTICASTER_H
#define MULTICASTER_H

#include <map>
#include <vector>
#include <string>


class Value 
{
};


class MulticastObserver
{
public:
    virtual void accept (std::string address, Value value) = 0;

};

typedef std::vector<MulticastObserver *>     Subscriptions;
typedef std::map<std::string,Subscriptions>  AddressSpace;



class Multicaster
{
public:
    virtual        ~Multicaster () {}
    virtual bool    subscribe (MulticastObserver *observer, std::string address);
    virtual bool    unsubscribe (MulticastObserver *observer, std::string address);
    virtual bool    publish (MulticastObserver *observer, std::string address, Value value);
    virtual void    unsubscribeFromAll (MulticastObserver *observer);

private:
    AddressSpace    m_addresses;
    void            unsubscribe (Subscriptions& subscriptions, MulticastObserver *observerToRemove);

};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -