Go to the documentation of this file.
11 #ifndef IncidentSvc_IncidentSvc_H
12 #define IncidentSvc_IncidentSvc_H
32 #include <tbb/concurrent_queue.h>
33 #include <tbb/concurrent_unordered_map.h>
46 struct isSingleShot_t;
63 bool singleShot =
false )
override;
99 typedef tbb::concurrent_queue<std::unique_ptr<Incident>>
IncQueue_t;
103 tbb::concurrent_unordered_map<EventContext::ContextID_t, EventContext::ContextEvt_t>
m_slotEvent;
tbb::concurrent_queue< std::unique_ptr< Incident > > IncQueue_t
void i_fireIncident(const Incident &incident, const std::string &type)
Internal function to allow incidents listening to all events.
tbb::concurrent_unordered_map< EventContext::ContextID_t, IncQueue_t > m_firedIncidents
ChronoEntity m_timer
timer & it's lock
Default implementation of the IIncidentSvc interface.
std::list< IIncidentSvc::Listener > ListenerList
const std::string & name() const override
Retrieve name of the service
void addListener(IIncidentListener *lis, const std::string &type="", long priority=0, bool rethrow=false, bool singleShot=false) override
ListenerMap::iterator removeListenerFromList(ListenerMap::iterator, IIncidentListener *item, bool scheduleRemoval)
Base class used to extend a class implementing other interfaces.
tbb::concurrent_unordered_map< EventContext::ContextID_t, EventContext::ContextEvt_t > m_slotEvent
Event ID for each slot.
GaudiUtils::HashMap< Gaudi::StringKey, std::unique_ptr< ListenerList > > ListenerMap
void fireIncident(const Incident &incident) override
std::recursive_mutex m_listenerMapMutex
Mutex to synchronize access to m_listenerMap.
map_type::iterator iterator
void removeListener(IIncidentListener *l, const std::string &type="") override
IncidentSvc(const std::string &name, ISvcLocator *svc)
const std::string * m_currentIncidentType
Incident being fired.
IIncidentSvc::IncidentPack getIncidents(const EventContext *ctx) override
void getListeners(std::vector< IIncidentListener * > &lis, const std::string &type="") const override
ListenerMap m_listenerMap
List of auditor names.
StatusCode finalize() override