VL
Observer.h
Go to the documentation of this file.
1#pragma once
2#include <unordered_map>
3#include <vector>
4#include "vl_fwd.h"
5
6namespace vl
7{
8 class Observable;
9
11 {
13 std::string title;
14 };
15
17 {
18 friend class Observable;
19 public:
20 virtual ~Observer();
21 virtual void Update(Observable* sender, vl::VarPtr info = nullptr) = 0;
22 const SubscriptionInfo* GetSubscriptionInfo(const Observable* o) const;
23 const std::unordered_map<Observable*, SubscriptionInfo>* GetSubscriptions() const;
24
25 protected:
26 std::unordered_map<Observable*, SubscriptionInfo>* GetSubscriptions();
28
29 private:
30 static std::unordered_map<Observer*, std::unordered_map<Observable*, SubscriptionInfo>> mSubscriptions;
31 std::string mTitle;
32 };
33}
Definition: Observable.h:12
Definition: Observer.h:17
const SubscriptionInfo * GetSubscriptionInfo(const Observable *o) const
Definition: Observer.cpp:50
virtual ~Observer()
Definition: Observer.cpp:13
virtual void Update(Observable *sender, vl::VarPtr info=nullptr)=0
const std::unordered_map< Observable *, SubscriptionInfo > * GetSubscriptions() const
Definition: Observer.cpp:36
Definition: JSONConverter.h:9
std::shared_ptr< Var > VarPtr
Definition: vl_fwd.h:41
Definition: Observer.h:11
std::string title
Definition: Observer.h:13
Observable * observervable
Definition: Observer.h:12