diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-09-12 00:29:28 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-12-14 11:00:25 +0100 |
commit | d663f702c0e4fa562783504a483dce8f362d628e (patch) | |
tree | fdb656d0467a935aa6790dd9e05d3e373606a3e1 /signal-composer-binding/observer.hpp | |
parent | 75cfbf3d0206f12422091e6479c508c69445bf4a (diff) |
Progression on config parsing.
Change-Id: Idd8d8987ccabef381f6d79c1d508930a2d4bae3c
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'signal-composer-binding/observer.hpp')
-rw-r--r-- | signal-composer-binding/observer.hpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/signal-composer-binding/observer.hpp b/signal-composer-binding/observer.hpp new file mode 100644 index 0000000..e4129c6 --- /dev/null +++ b/signal-composer-binding/observer.hpp @@ -0,0 +1,30 @@ +#include <vector> + +class Observer +{ +public: + virtual void update(double timestamp, double value) = 0; +}; + +class Subject +{ + double timestamp_; + double value_; + std::vector<Observer*> m_views; +public: + void attach(Observer *obs) + { + m_views.push_back(obs); + } + void set_val(double timestamp, double value) + { + timestamp_ = timestamp; + value_ = value; + notify(); + } + void notify() + { + for (int i = 0; i < m_views.size(); ++i) + m_views[i]->update(timestamp_, value_); + } +}; |