示例#1
0
void ServiceListeners::ModuleChanged(const ModuleEvent& evt)
{
  ModuleListenerMap filteredModuleListeners;
  coreCtx->moduleHooks.FilterModuleEventReceivers(evt, filteredModuleListeners);

  for(ModuleListenerMap::iterator iter = filteredModuleListeners.begin(), end = filteredModuleListeners.end();
      iter != end; ++iter)
  {
    for (ModuleListenerMap::mapped_type::iterator iter2 = iter->second.begin(), end2 = iter->second.end();
         iter2 != end2; ++iter2)
    {
      (iter2->first)(evt);
    }
  }
}
示例#2
0
void ServiceListeners::ModuleChanged(const ModuleEvent& evt)
{
  ModuleListenerMap filteredModuleListeners;
  coreCtx->moduleHooks.FilterModuleEventReceivers(evt, filteredModuleListeners);

  for(ModuleListenerMap::iterator iter = filteredModuleListeners.begin(), end = filteredModuleListeners.end();
      iter != end; ++iter)
  {
    for (ModuleListenerMap::mapped_type::iterator iter2 = iter->second.begin(), end2 = iter->second.end();
         iter2 != end2; ++iter2)
    {
      try
      {
        (iter2->first)(evt);
      }
      catch (const std::exception& e)
      {
        US_WARN << "Module listener threw an exception: " << e.what();
      }
    }
  }
}