Working event system!

This commit is contained in:
2014-04-28 09:28:18 +02:00
parent 22138a36aa
commit 5870a4d7bf
6 changed files with 150 additions and 45 deletions
+26
View File
@@ -0,0 +1,26 @@
#include "PrecompiledHeader.h"
#include "EventBroker.h"
BaseEventRelay::~BaseEventRelay()
{
m_Broker->Unsubscribe(*this);
}
void EventBroker::Unsubscribe(BaseEventRelay &relay) // ?
{
auto itpair = m_Subscribers.equal_range(relay.m_TypeName);
for (auto it = itpair.first; it != itpair.second; ++it)
{
if (it->second == &relay)
{
m_Subscribers.erase(it);
break;
}
}
}
void EventBroker::Subscribe(BaseEventRelay &relay)
{
relay.m_Broker = this;
m_Subscribers.insert(std::make_pair(relay.m_TypeName, &relay));
}