BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
Notifier.h
Go to the documentation of this file.
1#ifndef _BPMNOS_Execution_Notifier_H
2#define _BPMNOS_Execution_Notifier_H
3
4#include <vector>
5#include "Observable.h"
6#include "Observer.h"
7
8namespace BPMNOS::Execution {
9
10class Notifier {
11public:
12 Notifier();
13 virtual ~Notifier() = default;
14
15 template<typename... ObservableTypes>
16 void addSubscriber(Observer* subscriber, ObservableTypes... observableTypes) {
17 (subscribers[(size_t)observableTypes].push_back(subscriber), ...);
18 }
19
20 void notify(const Observable* observable) const;
21 void notify(const Observable& observable) const;
22private:
23 std::vector< std::vector<Observer*> > subscribers;
24};
25
26} // namespace BPMNOS::Execution
27#endif // _BPMNOS_Execution_Notifier_H
void notify(const Observable *observable) const
Definition Notifier.cpp:10
void addSubscriber(Observer *subscriber, ObservableTypes... observableTypes)
Definition Notifier.h:16
virtual ~Notifier()=default