37     return iNamed ? iNamed->name() : s_unknown;
    42 #define ON_DEBUG if ( msgLevel( MSG::DEBUG ) )    43 #define ON_VERBOSE if ( msgLevel( MSG::VERBOSE ) )    45 #define DEBMSG ON_DEBUG debug()    46 #define VERMSG ON_VERBOSE verbose()   107   auto& llist = *itMap->second;
   114   DEBMSG << 
"Adding [" << type << 
"] listener '" << getListenerName( lis ) << 
"' with priority " << prio << 
endmsg;
   115   llist.emplace( i, lis, prio, rethrow, singleShot );
   121   auto match = [&]( ListenerList::const_reference j ) { 
return !item || item == j.iListener; };
   123   auto& 
c = *( i->second );
   124   if ( !scheduleRemoval ) {
   127         debug() << 
"Removing [" << i->first << 
"] listener '" << getListenerName( j.iListener ) << 
"'" << 
endmsg;
   143   if ( type.empty() ) {
   157   constexpr 
struct isSingleShot_t {
   172   if ( incident.
type() == IncidentType::FailInputFile || incident.
type() == IncidentType::CorruptedInputFile ) {
   187   bool firedSingleShot = 
false;
   189   auto& listeners = *ilisteners->second;
   191   for ( 
auto& listener : listeners ) {
   193     VERMSG << 
"Calling '" << getListenerName( listener.iListener ) << 
"' for incident [" << incident.
type() << 
"]"   198       listener.iListener->handle( incident );
   200       error() << 
"Exception with tag=" << exc.
tag() << 
" is caught"   201                                                        " handling incident "   204       if ( listener.rethrow ) {
   208       error() << 
"Standard std::exception is caught"   209                  " handling incident "   212       if ( listener.rethrow ) {
   216       error() << 
"UNKNOWN Exception is caught"   217                  " handling incident "   219       if ( listener.rethrow ) {
   224     firedSingleShot |= listener.singleShot;
   226   if ( firedSingleShot ) {
   244   if ( incident.
type() != 
"ALL" ) { 
   253   auto ctx = incident->
context();
   255   res.first->second.push( incident.
release() );
   269     l.
reserve( i->second->size() );
   271                     []( 
const Listener& j ) { return j.iListener; } );
   285       DEBMSG << 
"Collecting listeners fired on context " << *ctx << 
endmsg;
   286       while ( incs->second.try_pop( inc ) ) {
 
StatusCode initialize() override
 
ChronoEntity m_timer
timer & it's lock 
 
Define general base for Gaudi exception. 
 
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
 
const std::string & type() const 
Access to the incident type. 
 
StatusCode finalize() override
 
StatusCode finalize() override
 
T partition_point(T...args)
 
void addListener(IIncidentListener *lis, const std::string &type="", long priority=0, bool rethrow=false, bool singleShot=false) override
 
IIncidentSvc::IncidentPack getIncidents(const EventContext *ctx) override
 
ListenerMap::iterator removeListenerFromList(ListenerMap::iterator, IIncidentListener *item, bool scheduleRemoval)
 
std::list< Listener > ListenerList
 
This class represents an entry point to all the event specific data. 
 
bool isFailure() const 
Test for a status code of FAILURE. 
 
IncidentSvc(const std::string &name, ISvcLocator *svc)
 
constexpr int CorruptedInput
 
#define DECLARE_COMPONENT(type)
 
std::vector< std::unique_ptr< Incident > > incidents
 
std::pair< iterator, bool > insert(ValueType &&val)
 
MsgStream & error() const 
shortcut for the method msgStream(MSG::ERROR) 
 
The interface implemented by any class wanting to listen to Incidents. 
 
std::recursive_mutex m_listenerMapMutex
Mutex to synchronize access to m_listenerMap. 
 
This class is used for returning status codes from appropriate routines. 
 
void removeListener(IIncidentListener *l, const std::string &type="") override
 
iterator find(const key_type &key)
 
virtual const std::string & tag() const 
name tag for the exception, or exception type 
 
StatusCode initialize() override
 
std::vector< std::vector< IIncidentListener * > > listeners
 
const std::string * m_currentIncidentType
Incident being fired. 
 
StatusCode setAppReturnCode(SmartIF< IProperty > &appmgr, int value, bool force=false)
Set the application return code. 
 
StatusCode setProperties()
Method for setting declared properties to the values specified for the job. 
 
tbb::concurrent_queue< Incident * > IncQueue_t
 
tbb::concurrent_unordered_map< EventContext, IncQueue_t, EventContextHash, EventContextHash > m_firedIncidents
 
std::string outputUserTime() const 
print the chrono ; 
 
void getListeners(std::vector< IIncidentListener * > &lis, const std::string &type="") const  override
 
map_type::iterator iterator
 
Helper object, useful for measurement of CPU-performance of highly-recursive structures, e.g. 
 
virtual Out operator()(const vector_of_const_< In > &inputs) const  =0
 
iterator erase(const_iterator pos)
 
MsgStream & debug() const 
shortcut for the method msgStream(MSG::DEBUG) 
 
void i_fireIncident(const Incident &incident, const std::string &type)
Internal function to allow incidents listening to all events. 
 
T back_inserter(T...args)
 
Base class for all Incidents (computing events). 
 
void fireIncident(const Incident &incident) override
 
ListenerMap m_listenerMap
List of auditor names. 
 
Default implementation of the IIncidentSvc interface. 
 
The IProperty is the basic interface for all components which have properties that can be set or get...
 
EventContext context() const 
Access to the EventContext of the source of the incident. 
 
SmartIF< ISvcLocator > & serviceLocator() const  override
Retrieve pointer to service locator. 
 
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.