27 if (listener !=
nullptr)
39 if (listener !=
nullptr)
57 void Invoke(std::function<
void(
const std::shared_ptr<T>&)> callback)
59 std::vector<std::shared_ptr<T>> listeners;
61 Invoke(callback, listeners);
64 void Invoke(std::function<
void(
const std::shared_ptr<T>&)> callback,
const std::vector<std::shared_ptr<T>>& listeners)
66 for (
const auto& listener : listeners)
82 auto locked = iter->lock();
84 if (locked ==
nullptr)
90 listeners.push_back(locked);
98 typedef typename std::vector<ListenerType>
ListType;
105 auto locked = iter->lock();
107 if (locked ==
nullptr)
124 auto locked = iter->lock();
126 if (locked ==
nullptr)
130 else if (locked == listener)
std::vector< ListenerType > ListType
Definition: eventsource.h:98
IterType FindListener(const std::shared_ptr< T > &listener)
Definition: eventsource.h:118
void Invoke(std::function< void(const std::shared_ptr< T > &)> callback)
Definition: eventsource.h:57
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
Definition: eventsource.h:18
ListType::iterator IterType
Definition: eventsource.h:99
bool Empty()
Definition: eventsource.h:72
void AddListener(const std::shared_ptr< T > &listener)
Definition: eventsource.h:25
void Invoke(std::function< void(const std::shared_ptr< T > &)> callback, const std::vector< std::shared_ptr< T >> &listeners)
Definition: eventsource.h:64
void ClearListeners()
Definition: eventsource.h:52
bool RemoveListener(const std::shared_ptr< T > &listener)
Definition: eventsource.h:37
void CaptureListeners(std::vector< std::shared_ptr< T >> &listeners)
Definition: eventsource.h:78
void Tidy()
Definition: eventsource.h:101
std::weak_ptr< T > ListenerType
Definition: eventsource.h:97
ListType mListeners
Definition: eventsource.h:143