Example #1
0
void MessageManager::Broadcast( const CString& sMessage ) const
{
	ASSERT( !sMessage.empty() );

	map<CString,SubscribersSet>::const_iterator iter = m_MessageToSubscribers.find( sMessage );
	if( iter == m_MessageToSubscribers.end() )
		return;

	FOREACHS_CONST( IMessageSubscriber*, iter->second, p )
	{
		IMessageSubscriber *pSub = *p;
		pSub->HandleMessage( sMessage );
	}
}
Example #2
0
void MessageManager::Broadcast( Message &msg ) const
{
	// GAMESTATE is created before MESSAGEMAN, and has several BroadcastOnChangePtr members, so they all broadcast when they're initialized.
	if(this != NULL && m_Logging)
	{
		LOG->Trace("MESSAGEMAN:Broadcast: %s", msg.GetName().c_str());
	}
	msg.SetBroadcast(true);

	LockMut(g_Mutex);

	map<RString,SubscribersSet>::const_iterator iter = g_MessageToSubscribers.find( msg.GetName() );
	if( iter == g_MessageToSubscribers.end() )
		return;

	FOREACHS_CONST( IMessageSubscriber*, iter->second, p )
	{
		IMessageSubscriber *pSub = *p;
		pSub->HandleMessage( msg );
	}
}