19 #ifndef RTM_UTIL_LISTENERHOLDER_H 20 #define RTM_UTIL_LISTENERHOLDER_H 24 #include <coil/Mutex.h> 25 #include <coil/Guard.h> 26 #include <coil/NonCopyable.h> 143 template <
typename ListenerClass>
145 :
public coil::NonCopyable
148 typedef coil::Guard<coil::Mutex>
Guard;
149 typedef std::pair<ListenerClass*, bool>
Entry;
214 if ((*it).first == listener)
248 #define LISTENERHOLDER_CALLBACK(func, args) \ 250 Guard guard(m_mutex); \ 251 for (int i(0), len(m_listeners.size()); i < len; ++i) \ 253 m_listeners[i].first->func args; \ 257 #endif // RTM_UITL_LISTENERHOLDER_H ListenerHolder()
ListenerHolderクラスコンストラクタ
Definition: ListenerHolder.h:160
virtual void addListener(ListenerClass *listener, bool autoclean)
リスナを追加する
Definition: ListenerHolder.h:193
coil::Mutex m_mutex
Mutex
Definition: ListenerHolder.h:234
std::vector< Entry > EntryList
Definition: ListenerHolder.h:150
std::pair< ListenerClass *, bool > Entry
Definition: ListenerHolder.h:149
EntryList::iterator EntryIterator
Definition: ListenerHolder.h:151
virtual ~ListenerHolder()
ListenerHolderデストラクタ
Definition: ListenerHolder.h:171
coil::Guard< coil::Mutex > Guard
Definition: ListenerHolder.h:148
virtual void removeListener(ListenerClass *listener)
リスナを削除する
Definition: ListenerHolder.h:207
EntryList m_listeners
リスナのリスト
Definition: ListenerHolder.h:243
RT-Middleware
Definition: ListenerHolder.h:28
Definition: ListenerHolder.h:144