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 <list>
6
#include "
Observable.h
"
7
#include "
Observer.h
"
8
9
namespace
BPMNOS::Execution
{
10
11
class
Notifier
{
12
public
:
13
Notifier
();
14
virtual
~Notifier
() =
default
;
15
16
template
<
typename
... ObservableTypes>
17
void
addSubscriber
(
Observer
* subscriber, ObservableTypes... observableTypes) {
18
(subscribers[(size_t)observableTypes].push_back(subscriber), ...);
19
}
20
21
template
<
typename
... ObservableTypes>
22
void
removeSubscriber
(
Observer
* subscriber, ObservableTypes... observableTypes) {
23
(subscribers[(size_t)observableTypes].remove(subscriber), ...);
24
}
25
26
void
notify
(
const
Observable
* observable)
const
;
27
void
notify
(
const
Observable
& observable)
const
;
28
private
:
29
std::vector< std::list<Observer*> > subscribers;
30
};
31
32
}
// namespace BPMNOS::Execution
33
#endif
// _BPMNOS_Execution_Notifier_H
Observable.h
Observer.h
BPMNOS::Execution::Notifier
Definition
Notifier.h:11
BPMNOS::Execution::Notifier::notify
void notify(const Observable *observable) const
Definition
Notifier.cpp:10
BPMNOS::Execution::Notifier::Notifier
Notifier()
Definition
Notifier.cpp:6
BPMNOS::Execution::Notifier::removeSubscriber
void removeSubscriber(Observer *subscriber, ObservableTypes... observableTypes)
Definition
Notifier.h:22
BPMNOS::Execution::Notifier::addSubscriber
void addSubscriber(Observer *subscriber, ObservableTypes... observableTypes)
Definition
Notifier.h:17
BPMNOS::Execution::Notifier::~Notifier
virtual ~Notifier()=default
BPMNOS::Execution::Observer
Definition
Observer.h:9
BPMNOS::Execution
Definition
Controller.h:9
BPMNOS::Execution::Observable
Definition
Observable.h:6