13 #ifndef INC_THEMIS_LISTENER_H___ 14 #define INC_THEMIS_LISTENER_H___ 18 #include <boost/utility.hpp> 40 constexpr
Listener() noexcept : tkr_(
nullptr) {}
53 virtual void update(
const E_&) =0;
73 void removeFromTalker__()
87 std::list<themis::Listener<E_>*> lsns_;
96 for (
auto it = lsns_.begin(); it != lsns_.end(); it++)
97 (*it)->removeFromTalker__();
106 auto it = std::find(lsns_.begin(), lsns_.end(), lsn);
107 if (it == lsns_.end()) {
108 lsns_.push_back(lsn);
109 lsn->addToTalker__(
this);
119 auto it = std::find(lsns_.begin(), lsns_.end(), lsn);
120 if (it != lsns_.end())
122 (*it)->removeFromTalker__();
134 for (
auto it = lsns_.begin(); it != lsns_.end(); it++)
142 #endif // INC_THEMIS_LISTENER_H___ constexpr Talker() noexcept
デフォルト構築子
Definition: listen.h:91
イベントE_をTalker<E_>から通知されて處理するクラスの基底
Definition: listen.h:22
void notify(const E_ &e)
イベント通知
Definition: listen.h:132
イベント E_ を Listener<E_> に一齊通知するクラスの基底
Definition: listen.h:23
virtual ~Talker()
解體子
Definition: listen.h:94
virtual ~Listener()
解體子
Definition: listen.h:43
void add(themis::Listener< E_ > *lsn)
リスナーlsnをイベント通知對象に追加
Definition: listen.h:104
void remove(themis::Listener< E_ > *lsn)
リスナーlsnをイベント通知對象から除去
Definition: listen.h:117
constexpr Listener() noexcept
デフォルト構築子
Definition: listen.h:40
virtual void update(const E_ &)=0
更新(イベント通知)