31#ifndef ETL_OBSERVER_INCLUDED
32#define ETL_OBSERVER_INCLUDED
98 template <
typename TObserver, const
size_t MAX_OBSERVERS>
121 struct compare_observers
130 return p_observer ==
item.p_observer;
160 observer_list.push_back(observer_item(
observer));
224 observer_list.clear();
232 return observer_list.size();
240 template <
typename TNotification>
286 typename Observer_List::iterator find_observer(TObserver& observer_)
288 return etl::find_if(observer_list.begin(), observer_list.end(), compare_observers(observer_));
292 Observer_List observer_list;
295#if ETL_USING_CPP11 && !defined(ETL_OBSERVER_FORCE_CPP03_IMPLEMENTATION)
296 template <
typename... TTypes>
303 template <
typename T1,
typename... TRest>
304 class observer<T1, TRest...> :
public observer<T1>,
public observer<TRest...>
310 using observer<T1>::notification;
311 using observer<TRest...>::notification;
318 template <
typename T1>
323 virtual ~observer() =
default;
325 virtual void notification(T1) = 0;
337 virtual ~observer() =
default;
339 virtual void notification() = 0;
348 template <
typename T1,
382 template <
typename T1,
413 template <
typename T1,
441 template <
typename T1,
466 template <
typename T1,
488 template <
typename T1,
507 template <
typename T1,
523 template <
typename T1>
529 virtual void notification(
T1) = 0;
542 virtual void notification() = 0;
Definition exception.h:47
void notify_observers(TNotification n)
Definition observer.h:241
void disable_observer(TObserver &observer)
Disable an observer.
Definition observer.h:207
void add_observer(TObserver &observer)
Definition observer.h:148
bool remove_observer(TObserver &observer)
Definition observer.h:169
void clear_observers()
Clear all observers from the list.
Definition observer.h:222
void enable_observer(TObserver &observer, bool state=true)
Definition observer.h:192
size_type number_of_observers() const
Returns the number of observers.
Definition observer.h:230
void notify_observers()
Notify all of the observers, sending them the notification.
Definition observer.h:259
Definition observer.h:100
Definition observer.h:364
bitset_ext
Definition absolute.h:38
pair holds two objects of arbitrary type
Definition utility.h:164