1 #ifndef OBSERVABLE_VALUE_HPP
2 #define OBSERVABLE_VALUE_HPP
37 template <
typename TType>
42 std::set<IObserver<TType>*> _subscriber;
46 for (
auto* observer : _subscriber)
49 observer->update(_value);
57 while (!_subscriber.empty())
63 _value = std::move(value);
68 if (newValue != _value)
77 _subscriber.insert(observer);
83 _subscriber.erase(observer);
86 void set(TType newValue)
88 if (newValue != _value)
90 _value = std::move(newValue);
97 return _subscriber.size();
ObservableValue class template that implements the Observer design pattern. It allows observers to su...
ObservableValue & operator=(const TType &newValue)
ObservableValue(TType value)
int countSubscriber() const
void unsubscribe(IObserver< TType > *observer)
void subscribe(IObserver< TType > *observer)
const TType & get() const
ObservableValue()=default