示例#1
0
void ServiceListeners::RemoveServiceListener(ModuleContext* mc, const ServiceListenerEntry::ServiceListener& listener,
                                             void* data)
{
  ServiceListenerEntry entryToRemove(mc->GetModule(), listener, data);

  MutexLocker lock(mutex);
  RemoveServiceListener_unlocked(entryToRemove);
}
示例#2
0
void ServiceListeners::RemoveServiceListener(ModuleContext* mc, const ServiceListenerEntry::ServiceListener& listener,
                                             void* data)
{
  ServiceListenerEntry entryToRemove(mc, listener, data);

  US_UNUSED(Lock(this));
  RemoveServiceListener_unlocked(entryToRemove);
}
示例#3
0
void ServiceListeners::AddServiceListener(ModuleContext* mc, const ServiceListenerEntry::ServiceListener& listener,
                                          void* data, const std::string& filter)
{
  US_UNUSED(Lock(this));

  ServiceListenerEntry sle(mc, listener, data, filter);
  RemoveServiceListener_unlocked(sle);

  serviceSet.insert(sle);
  coreCtx->serviceHooks.HandleServiceListenerReg(sle);
  CheckSimple(sle);
}
示例#4
0
void ServiceListeners::AddServiceListener(ModuleContext* mc, const ServiceListenerEntry::ServiceListener& listener,
                                          void* data, const std::string& filter)
{
  MutexLocker lock(mutex);

  ServiceListenerEntry sle(mc->GetModule(), listener, data, filter);
  if (serviceSet.find(sle) != serviceSet.end())
  {
    RemoveServiceListener_unlocked(sle);
  }
  serviceSet.insert(sle);
  CheckSimple(sle);
}