bool Manager::VTrigger ( IData const & inEvent ) const { if ( ! VValidateType( inEvent.GetTypeId() ) ) return false; EventListenerMap::const_iterator itWC = m_registry.find( 0 ); if ( itWC != m_registry.end() ) { EventListenerTable const & table = itWC->second; bool processed = false; for ( EventListenerTable::const_iterator it2 = table.begin(), it2End = table.end(); it2 != it2End; it2++ ) { (*it2)->HandleEvent( inEvent ); } } EventListenerMap::const_iterator it = m_registry.find( inEvent.GetTypeId().Value() ); if ( it == m_registry.end() ) return false; EventListenerTable const & table = it->second; bool processed = false; for ( EventListenerTable::const_iterator it2 = table.begin(), it2End = table.end(); it2 != it2End; it2++ ) { ListenerPtr listener = *it2; if ( listener->HandleEvent( inEvent ) ) { processed = true; } } return processed; }