1#ifndef RESIP_EventDispatcher_hxx
2#define RESIP_EventDispatcher_hxx
24 E*
event =
dynamic_cast<E*
>(msg);
25 if (!event)
return false;
28 const std::size_t size = mListeners.size();
29 if (size == 0)
return false;
31 for (std::size_t i = 0; i < size; ++i)
35 mListeners[i]->post(msg);
39 mListeners[i]->post(msg->
clone());
48 std::vector<Postable*>::iterator it = find(listener);
49 if (it == mListeners.end())
51 mListeners.push_back(listener);
58 std::vector<Postable*>::iterator it = find(listener);
59 if (it != mListeners.end())
66 std::vector<Postable*> mListeners;
69 std::vector<Postable*>::iterator find(
Postable* listener)
71 std::vector<Postable*>::iterator it;
72 for (it = mListeners.begin(); it != mListeners.end(); ++it)
void removeListener(Postable *listener)
void addListener(Postable *listener)
bool dispatch(Message *msg)
The base-class used for message-passing.
virtual Message * clone() const =0
dcm! – add UnusedChecking(_enum) below;
std::mutex Mutex
A semaphore that can be locked by only one thread at a time.
std::unique_lock< Mutex > Lock
A convenience class to lock a Lockable (such as a Mutex) on object creation, and unlock on destructio...