multicaster.h

来自「著名的uncle Bob的Agile software development的」· C头文件 代码 · 共 43 行

H
43
字号

#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 + =
减小字号Ctrl + -
显示快捷键?