|
reSIProcate/DialogUsageManager
9694
|
#include <EventDispatcher.hxx>


Public Member Functions | |
| EventDispatcher () | |
| bool | dispatch (Message *msg) |
| void | addListener (Postable *listener) |
| void | removeListener (Postable *listener) |
Private Member Functions | |
| std::vector< Postable * >::iterator | find (Postable *listener) |
Private Attributes | |
| std::vector< Postable * > | mListeners |
| Mutex | mMutex |
Definition at line 15 of file EventDispatcher.hxx.
| resip::EventDispatcher< E >::EventDispatcher | ( | ) | [inline] |
Definition at line 18 of file EventDispatcher.hxx.
{
}
| void resip::EventDispatcher< E >::addListener | ( | Postable * | listener | ) | [inline] |
Definition at line 52 of file EventDispatcher.hxx.
Referenced by resip::DialogUsageManager::registerForConnectionTermination().
{
Lock lock(mMutex);
std::vector<Postable*>::iterator it = find(listener);
if (it == mListeners.end())
{
mListeners.push_back(listener);
}
}
| bool resip::EventDispatcher< E >::dispatch | ( | Message * | msg | ) | [inline] |
Definition at line 22 of file EventDispatcher.hxx.
Referenced by resip::DialogUsageManager::internalProcess().
{
Lock lock(mMutex);
bool ret = false;
E* event = dynamic_cast<E*>(msg);
if (event)
{
if(mListeners.size() > 0)
{
ret = true;
unsigned int counter = 1;
for (std::vector<Postable*>::iterator it = mListeners.begin(); it != mListeners.end(); ++it)
{
if (counter == mListeners.size())
{
(*it)->post(msg);
}
else
{
++counter;
(*it)->post(msg->clone());
}
}
}
}
return ret;
}
| std::vector<Postable*>::iterator resip::EventDispatcher< E >::find | ( | Postable * | listener | ) | [inline, private] |
Definition at line 76 of file EventDispatcher.hxx.
Referenced by resip::EventDispatcher< ConnectionTerminated >::addListener(), and resip::EventDispatcher< ConnectionTerminated >::removeListener().
{
std::vector<Postable*>::iterator it;
for (it = mListeners.begin(); it != mListeners.end(); ++it)
{
if (listener == *it)
{
break;
}
}
return it;
}
| void resip::EventDispatcher< E >::removeListener | ( | Postable * | listener | ) | [inline] |
Definition at line 62 of file EventDispatcher.hxx.
Referenced by resip::DialogUsageManager::unRegisterForConnectionTermination().
{
Lock lock(mMutex);
std::vector<Postable*>::iterator it = find(listener);
if (it != mListeners.end())
{
mListeners.erase(it);
}
}
std::vector<Postable*> resip::EventDispatcher< E >::mListeners [private] |
Definition at line 73 of file EventDispatcher.hxx.
Referenced by resip::EventDispatcher< ConnectionTerminated >::addListener(), resip::EventDispatcher< ConnectionTerminated >::dispatch(), resip::EventDispatcher< ConnectionTerminated >::find(), and resip::EventDispatcher< ConnectionTerminated >::removeListener().
Mutex resip::EventDispatcher< E >::mMutex [private] |
Definition at line 74 of file EventDispatcher.hxx.
Referenced by resip::EventDispatcher< ConnectionTerminated >::addListener(), resip::EventDispatcher< ConnectionTerminated >::dispatch(), and resip::EventDispatcher< ConnectionTerminated >::removeListener().
1.7.5.1