The Gaudi Framework  v36r11 (bdb84f5f)
TimingAuditor Class Reference
Inheritance diagram for TimingAuditor:
Collaboration diagram for TimingAuditor:

Public Member Functions

void before (StandardEventType evt, INamedInterface *alg) override
 
void after (StandardEventType evt, INamedInterface *alg, const StatusCode &sc) override
 
void before (CustomEventTypeRef evt, const std::string &name) override
 
void after (CustomEventTypeRef evt, const std::string &name, const StatusCode &sc) override
 
void handle (const Incident &) override
 Inform that a new incident has occurred. More...
 
StatusCode initialize () override
 factory: More...
 
StatusCode finalize () override
 
 TimingAuditor ()=delete
 
 TimingAuditor (const TimingAuditor &)=delete
 
TimingAuditoroperator= (const TimingAuditor &)=delete
 
void before (StandardEventType, INamedInterface *) override
 The following methods are meant to be implemented by the child class... More...
 
void before (StandardEventType, const std::string &) override
 
void before (CustomEventTypeRef, INamedInterface *) override
 
void before (CustomEventTypeRef, const std::string &) override
 
void after (StandardEventType, INamedInterface *, const StatusCode &) override
 
void after (StandardEventType, const std::string &, const StatusCode &) override
 
void after (CustomEventTypeRef, INamedInterface *, const StatusCode &) override
 
void after (CustomEventTypeRef, const std::string &, const StatusCode &) override
 
- Public Member Functions inherited from extends< Auditor, IIncidentListener >
void * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast. More...
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface. More...
 
std::vector< std::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
- Public Member Functions inherited from Auditor
 Auditor (std::string name, ISvcLocator *svcloc)
 Constructor. More...
 
 Auditor (const Auditor &a)=delete
 
Auditoroperator= (const Auditor &rhs)=delete
 
StatusCode sysInitialize () override
 Initialization method invoked by the framework. More...
 
StatusCode sysFinalize () override
 Finalization method invoked by the framework. More...
 
void before (StandardEventType, INamedInterface *) override
 The following methods are meant to be implemented by the child class... More...
 
void before (StandardEventType, const std::string &) override
 
void before (CustomEventTypeRef, INamedInterface *) override
 
void before (CustomEventTypeRef, const std::string &) override
 
void after (StandardEventType, INamedInterface *, const StatusCode &) override
 
void after (StandardEventType, const std::string &, const StatusCode &) override
 
void after (CustomEventTypeRef, INamedInterface *, const StatusCode &) override
 
void after (CustomEventTypeRef, const std::string &, const StatusCode &) override
 
void beforeInitialize (INamedInterface *) override
 
void afterInitialize (INamedInterface *) override
 
void beforeReinitialize (INamedInterface *) override
 
void afterReinitialize (INamedInterface *) override
 
void beforeExecute (INamedInterface *) override
 
void afterExecute (INamedInterface *, const StatusCode &) override
 
void beforeFinalize (INamedInterface *) override
 
void afterFinalize (INamedInterface *) override
 
const std::stringname () const override
 
bool isEnabled () const override
 
SmartIF< ISvcLocator > & serviceLocator () const override
 The standard service locator. More...
 
template<class T >
StatusCode service (std::string_view name, T *&svc, bool createIf=false) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T = IService>
SmartIF< T > service (std::string_view name, bool createIf=false) const
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override
 set the property from another property with a different name More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property. More...
 
virtual StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0
 Set the property from a property with a different name. More...
 
virtual StatusCode setProperty (const std::string &s)=0
 Set the property by string. More...
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals. More...
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string. More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode setPropertyRepr (const std::string &n, const std::string &r) override
 set the property from name and value string representation More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const override
 get the property by name More...
 
StatusCode getProperty (std::string_view n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (std::string_view name) const override
 Return true if we have a property with the given name. More...
 
Gaudi::Details::PropertyBaseproperty (std::string_view name) const
 \fixme property and bindPropertiesTo should be protected More...
 
void bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc)
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
- Public Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 

Private Member Functions

void i_beforeInitialize (INamedInterface *alg)
 
void i_afterInitialize (INamedInterface *alg)
 
void i_beforeFinalize (INamedInterface *alg)
 
void i_beforeExecute (INamedInterface *alg)
 
void i_afterExecute (INamedInterface *alg)
 

Private Attributes

SmartIF< IToolSvcm_toolSvc = nullptr
 tool service More...
 
SmartIF< IIncidentSvcm_incSvc = nullptr
 incident service More...
 
ISequencerTimerToolm_timer = nullptr
 the timer tool More...
 
SmartIF< INamedInterfacem_appMgr = nullptr
 ApplicationManager. More...
 
GaudiUtils::VectorMap< const INamedInterface *, int > m_map
 
int m_indent = 0
 indentation level More...
 
bool m_inEvent = false
 "In event" flag More...
 
GaudiUtils::HashMap< std::string, int > m_mapUser
 map used to record user timing events More...
 
bool m_histoSaved = false
 
Gaudi::Property< bool > m_goodForDOD
 

Additional Inherited Members

- Public Types inherited from extends< Auditor, IIncidentListener >
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces... >
 Typedef to the base of this class. More...
 
- Public Types inherited from Auditor
using Factory = Gaudi::PluginService::Factory< IAuditor *(const std::string &, ISvcLocator *)>
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
using PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IAuditor, IProperty > >
using base_class = CommonMessaging
 
- Public Types inherited from extend_interfaces< Interfaces... >
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
 take union of the ext_iids of all Interfaces... More...
 
- Protected Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Detailed Description

Simple auditor which uses SequencerTimerTool for ALL algorithms, including the algorithm from main Gaudi "TopAlg" list and algorithms managed by Data-On-Demand Service

Author
Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u
Date
2007-01-31

Definition at line 37 of file TimingAuditor.cpp.

Constructor & Destructor Documentation

◆ TimingAuditor() [1/2]

TimingAuditor::TimingAuditor ( )
delete

◆ TimingAuditor() [2/2]

TimingAuditor::TimingAuditor ( const TimingAuditor )
delete

Member Function Documentation

◆ after() [1/6]

void TimingAuditor::after ( CustomEventTypeRef  evt,
const std::string name,
const StatusCode sc 
)
override

Definition at line 270 of file TimingAuditor.cpp.

270  {
271  // Ignore obvious mistakes
272  if ( name.empty() && evt.empty() ) { return; }
273 
274  // look for the user timer in the map
275  std::string nick = std::string{ name }.append( ":" ).append( evt );
276  auto found = m_mapUser.find( nick );
277 
278  // We cannot do much if the timer is not available
279  if ( m_mapUser.end() == found ) {
280  warning() << "Trying to stop the measure of the timing for '" << nick
281  << "' but it was never started. Check the code" << endmsg;
282  return;
283  }
284  m_timer->stop( found->second );
285 }

◆ after() [2/6]

void Auditor::after
override

Definition at line 77 of file Auditor.cpp.

139 {}

◆ after() [3/6]

void Auditor::after
override

Definition at line 76 of file Auditor.cpp.

138 {}

◆ after() [4/6]

void TimingAuditor::after ( StandardEventType  evt,
INamedInterface alg,
const StatusCode sc 
)
override

Definition at line 180 of file TimingAuditor.cpp.

180  {
181  switch ( evt ) {
184  break;
185  case IAuditor::Execute:
186  i_afterExecute( alg );
187  break;
188  default:
189  break;
190  }
191 }

◆ after() [5/6]

void Auditor::after
override

Definition at line 74 of file Auditor.cpp.

136 {}

◆ after() [6/6]

void Auditor::after
override

Definition at line 73 of file Auditor.cpp.

112  {
113  switch ( evt ) {
114  case Initialize:
115  afterInitialize( obj );
116  break;
117  case ReInitialize:
118  afterReinitialize( obj );
119  break;
120  case Execute:
121  afterExecute( obj, sc );
122  break;
123  case Finalize:
124  afterFinalize( obj );
125  break;
126  case Start:
127  break;
128  case Stop:
129  break;
130  case ReStart:
131  break;
132  default:
133  break; // do nothing
134  }
135 }

◆ before() [1/6]

void TimingAuditor::before ( CustomEventTypeRef  evt,
const std::string name 
)
override

Definition at line 251 of file TimingAuditor.cpp.

251  {
252  // Ignore obvious mistakes
253  if ( name.empty() && evt.empty() ) { return; }
254 
255  // look for the user timer in the map
256  int timer = 0;
257  std::string nick = std::string{ name }.append( ":" ).append( evt );
258  auto found = m_mapUser.find( nick );
259 
260  if ( m_mapUser.end() == found ) {
261  // add a new timer if not yet available
262  timer = m_timer->addTimer( nick );
263  m_mapUser[nick] = timer;
264  } else {
265  timer = found->second;
266  }
267  m_timer->start( timer );
268 }

◆ before() [2/6]

void Auditor::before
override

Definition at line 71 of file Auditor.cpp.

109 {}

◆ before() [3/6]

void Auditor::before
override

Definition at line 70 of file Auditor.cpp.

108 {}

◆ before() [4/6]

void TimingAuditor::before ( StandardEventType  evt,
INamedInterface alg 
)
override

Definition at line 164 of file TimingAuditor.cpp.

164  {
165  switch ( evt ) {
168  break;
169  case IAuditor::Execute:
170  i_beforeExecute( alg );
171  break;
172  case IAuditor::Finalize:
174  break;
175  default:
176  break;
177  }
178 }

◆ before() [5/6]

void Auditor::before
override

Definition at line 68 of file Auditor.cpp.

106 {}

◆ before() [6/6]

void Auditor::before
override

The following methods are meant to be implemented by the child class...

Definition at line 67 of file Auditor.cpp.

82  {
83  switch ( evt ) {
84  case Initialize:
85  beforeInitialize( obj );
86  break;
87  case ReInitialize:
88  beforeReinitialize( obj );
89  break;
90  case Execute:
91  beforeExecute( obj );
92  break;
93  case Finalize:
94  beforeFinalize( obj );
95  break;
96  case Start:
97  break;
98  case Stop:
99  break;
100  case ReStart:
101  break;
102  default:
103  break; // do nothing
104  }
105 }

◆ finalize()

StatusCode TimingAuditor::finalize ( )
overridevirtual

Reimplemented from Auditor.

Definition at line 143 of file TimingAuditor.cpp.

143  {
144  if ( m_incSvc ) {
145  m_incSvc->removeListener( this, IncidentType::BeginEvent );
146  m_incSvc->removeListener( this, IncidentType::EndEvent );
147  m_incSvc.reset();
148  }
149  if ( m_toolSvc ) {
150  // the 2 following line are commented out: it is
151  // is a temporary hack which prevent a crash due to a problem in
152  // the reference counting
153  // if ( 0 != m_timer )
154  // { m_toolSvc -> releaseTool ( m_timer ) . ignore() ; m_timer = 0 ; }
155  m_toolSvc.reset();
156  }
157  m_appMgr.reset();
158  // clear the map
159  m_map.clear();
160  // finalize the base class
161  return Auditor::finalize();
162 }

◆ handle()

void TimingAuditor::handle ( const Incident i)
override

Inform that a new incident has occurred.

Definition at line 287 of file TimingAuditor.cpp.

287  {
288  if ( IncidentType::BeginEvent == i.type() ) {
289  m_timer->start( m_map[m_appMgr.get()] );
290  ++m_indent;
291  m_inEvent = true;
292  } else if ( IncidentType::EndEvent == i.type() ) {
293  m_timer->stop( m_map[m_appMgr.get()] );
294  --m_indent;
295  m_inEvent = false;
296  }
297 }

◆ i_afterExecute()

void TimingAuditor::i_afterExecute ( INamedInterface alg)
private

Definition at line 243 of file TimingAuditor.cpp.

243  {
244  if ( !alg ) { return; }
245  auto found = m_map.find( alg );
246  if ( m_map.end() == found ) { return; }
247  m_timer->stop( found->second );
248  --m_indent;
249 }

◆ i_afterInitialize()

void TimingAuditor::i_afterInitialize ( INamedInterface alg)
private

Definition at line 220 of file TimingAuditor.cpp.

220  {
221  if ( m_goodForDOD || !alg ) { return; }
222  --m_indent;
223 }

◆ i_beforeExecute()

void TimingAuditor::i_beforeExecute ( INamedInterface alg)
private

Definition at line 225 of file TimingAuditor.cpp.

225  {
226  if ( !alg ) { return; }
227  ++m_indent;
228  auto found = m_map.find( alg );
229  if ( m_map.end() == found ) {
230  debug() << "Insert non-structural component '" << alg->name() << "' of type '"
231  << System::typeinfoName( typeid( *alg ) ) << "' at level " << m_indent << endmsg;
232  std::string nick = alg->name();
233  if ( 0 < m_indent ) { nick = std::string( m_indent, ' ' ) + nick; }
234  if ( !m_goodForDOD ) { nick[0] = '*'; }
235  int timer = m_timer->addTimer( nick );
236  m_map.insert( alg, timer );
237  m_timer->start( timer );
238  return;
239  }
240  m_timer->start( found->second );
241 }

◆ i_beforeFinalize()

void TimingAuditor::i_beforeFinalize ( INamedInterface alg)
private

Definition at line 193 of file TimingAuditor.cpp.

193  {
194  if ( !m_histoSaved ) {
196  m_histoSaved = true;
197  }
198 }

◆ i_beforeInitialize()

void TimingAuditor::i_beforeInitialize ( INamedInterface alg)
private

Definition at line 201 of file TimingAuditor.cpp.

201  {
202  if ( m_goodForDOD ) { return; }
203  //
204  if ( !alg ) { return; }
205  auto found = m_map.find( alg );
206  if ( m_map.end() != found ) { return; }
207  ++m_indent;
208  std::string nick = alg->name();
209  if ( 0 < m_indent ) { nick = std::string( m_indent, ' ' ) + nick; }
210  if ( m_inEvent ) {
211  nick[0] = '*';
212  debug() << "Insert non-structural component '" << alg->name() << "' of type '"
213  << System::typeinfoName( typeid( *alg ) ) << "' at level " << m_indent << endmsg;
214  }
215  int timer = m_timer->addTimer( nick );
216  m_map.insert( alg, timer );
217  m_timer->start( timer );
218 }

◆ initialize()

StatusCode TimingAuditor::initialize ( )
overridevirtual

factory:

Reimplemented from Auditor.

Definition at line 99 of file TimingAuditor.cpp.

99  {
101  if ( sc.isFailure() ) { return sc; } // RETURN
102 
103  // get tool service
104  if ( !m_toolSvc ) {
105  m_toolSvc = Auditor::service( "ToolSvc" );
106  if ( !m_toolSvc ) {
107  error() << "Could not retrieve 'ToolSvc' " << endmsg;
108  return StatusCode::FAILURE; // RETURN
109  }
110  if ( !m_timer ) {
111  sc = m_toolSvc->retrieveTool( "SequencerTimerTool/TIMER", m_timer, this, true );
112  if ( sc.isFailure() ) {
113  error() << "Could not retrieve ISequencerTimerTool" << endmsg;
114  return sc;
115  }
116  }
117  }
118  // get incident service
119  if ( !m_incSvc ) {
120  m_incSvc = Auditor::service( "IncidentSvc" );
121  if ( !m_incSvc ) {
122  error() << "Could not retrieve 'IncidentSvc'" << endmsg;
123  return StatusCode::FAILURE;
124  }
125  m_incSvc->addListener( this, IncidentType::BeginEvent );
126  m_incSvc->addListener( this, IncidentType::EndEvent );
127  }
128  // get the application manager
129  if ( !m_appMgr ) {
130  m_appMgr = Auditor::service( "ApplicationMgr" );
131  if ( !m_appMgr ) {
132  error() << "Could not retrieve 'ApplicationMgr'" << endmsg;
133  return sc;
134  }
135  if ( m_map.end() == m_map.find( m_appMgr.get() ) ) {
136  m_map.insert( m_appMgr.get(), m_timer->addTimer( "EVENT LOOP" ) );
137  }
138  }
139  //
140  return StatusCode::SUCCESS;
141 }

◆ operator=()

TimingAuditor& TimingAuditor::operator= ( const TimingAuditor )
delete

Member Data Documentation

◆ m_appMgr

SmartIF<INamedInterface> TimingAuditor::m_appMgr = nullptr
private

ApplicationManager.

Definition at line 78 of file TimingAuditor.cpp.

◆ m_goodForDOD

Gaudi::Property<bool> TimingAuditor::m_goodForDOD
private
Initial value:
{ this, "OptimizedForDOD", false,
"enable optimization for Data-On-Demand Service" }

Definition at line 91 of file TimingAuditor.cpp.

◆ m_histoSaved

bool TimingAuditor::m_histoSaved = false
private

Definition at line 89 of file TimingAuditor.cpp.

◆ m_incSvc

SmartIF<IIncidentSvc> TimingAuditor::m_incSvc = nullptr
private

incident service

Definition at line 74 of file TimingAuditor.cpp.

◆ m_indent

int TimingAuditor::m_indent = 0
private

indentation level

Definition at line 82 of file TimingAuditor.cpp.

◆ m_inEvent

bool TimingAuditor::m_inEvent = false
private

"In event" flag

Definition at line 84 of file TimingAuditor.cpp.

◆ m_map

GaudiUtils::VectorMap<const INamedInterface*, int> TimingAuditor::m_map
private

Definition at line 80 of file TimingAuditor.cpp.

◆ m_mapUser

GaudiUtils::HashMap<std::string, int> TimingAuditor::m_mapUser
private

map used to record user timing events

Definition at line 86 of file TimingAuditor.cpp.

◆ m_timer

ISequencerTimerTool* TimingAuditor::m_timer = nullptr
private

the timer tool

Definition at line 76 of file TimingAuditor.cpp.

◆ m_toolSvc

SmartIF<IToolSvc> TimingAuditor::m_toolSvc = nullptr
private

tool service

Definition at line 72 of file TimingAuditor.cpp.


The documentation for this class was generated from the following file:
IOTest.evt
evt
Definition: IOTest.py:110
Auditor::beforeInitialize
void beforeInitialize(INamedInterface *) override
Definition: Auditor.cpp:141
std::string
STL class.
TimingAuditor::m_appMgr
SmartIF< INamedInterface > m_appMgr
ApplicationManager.
Definition: TimingAuditor.cpp:78
IAuditor::Execute
@ Execute
Definition: IAuditor.h:34
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:157
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:96
Auditor::beforeReinitialize
void beforeReinitialize(INamedInterface *) override
Definition: Auditor.cpp:143
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:310
Auditor::afterExecute
void afterExecute(INamedInterface *, const StatusCode &) override
Definition: Auditor.cpp:146
TimingAuditor::m_histoSaved
bool m_histoSaved
Definition: TimingAuditor.cpp:89
TimingAuditor::m_goodForDOD
Gaudi::Property< bool > m_goodForDOD
Definition: TimingAuditor.cpp:91
Auditor::finalize
virtual StatusCode finalize()
Definition: Auditor.cpp:190
GaudiUtils::VectorMap::clear
void clear()
clear the container
Definition: VectorMap.h:476
basic.alg
alg
Definition: basic.py:15
TimingAuditor::m_toolSvc
SmartIF< IToolSvc > m_toolSvc
tool service
Definition: TimingAuditor.cpp:72
Auditor::initialize
virtual StatusCode initialize()
Definition: Auditor.cpp:79
Auditor::name
const std::string & name() const override
Definition: Auditor.cpp:192
IAuditor::Finalize
@ Finalize
Definition: IAuditor.h:34
Auditor::beforeFinalize
void beforeFinalize(INamedInterface *) override
Definition: Auditor.cpp:147
TimingAuditor::m_inEvent
bool m_inEvent
"In event" flag
Definition: TimingAuditor.cpp:84
TimingAuditor::i_beforeFinalize
void i_beforeFinalize(INamedInterface *alg)
Definition: TimingAuditor.cpp:193
StatusCode
Definition: StatusCode.h:65
Auditor::afterReinitialize
void afterReinitialize(INamedInterface *) override
Definition: Auditor.cpp:144
ISequencerTimerTool::saveHistograms
virtual void saveHistograms()=0
prepares and saves the timing histograms
IAuditor::Initialize
@ Initialize
Definition: IAuditor.h:34
Auditor::afterFinalize
void afterFinalize(INamedInterface *) override
Definition: Auditor.cpp:148
GaudiUtils::VectorMap::end
iterator end() const
"end" iterator for sequential access (const-only version!)
Definition: VectorMap.h:198
TimingAuditor::m_map
GaudiUtils::VectorMap< const INamedInterface *, int > m_map
Definition: TimingAuditor.cpp:80
Auditor::afterInitialize
void afterInitialize(INamedInterface *) override
Definition: Auditor.cpp:142
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:203
ISequencerTimerTool::start
virtual void start(int index)=0
start the counter, i.e.
std::string::append
T append(T... args)
GaudiUtils::Map::end
iterator end()
Definition: Map.h:140
TimingAuditor::i_afterInitialize
void i_afterInitialize(INamedInterface *alg)
Definition: TimingAuditor.cpp:220
Auditor::beforeExecute
void beforeExecute(INamedInterface *) override
Definition: Auditor.cpp:145
TimingAuditor::m_mapUser
GaudiUtils::HashMap< std::string, int > m_mapUser
map used to record user timing events
Definition: TimingAuditor.cpp:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:129
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:86
TimingAuditor::i_afterExecute
void i_afterExecute(INamedInterface *alg)
Definition: TimingAuditor.cpp:243
GaudiUtils::VectorMap::insert
result_type insert(const key_type &key, const mapped_type &mapped)
insert the (key,value) pair into the container
Definition: VectorMap.h:312
std::string::empty
T empty(T... args)
Incident::type
const std::string & type() const
Access to the incident type.
Definition: Incident.h:48
TimingAuditor::i_beforeExecute
void i_beforeExecute(INamedInterface *alg)
Definition: TimingAuditor.cpp:225
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:101
TimingAuditor::i_beforeInitialize
void i_beforeInitialize(INamedInterface *alg)
Definition: TimingAuditor.cpp:201
TimingAuditor::m_indent
int m_indent
indentation level
Definition: TimingAuditor.cpp:82
Auditor::service
StatusCode service(std::string_view name, T *&svc, bool createIf=false) const
Access a service by name, creating it if it doesn't already exist.
Definition: Auditor.h:109
GaudiUtils::VectorMap::find
iterator find(const key_type &key) const
find the element by key
Definition: VectorMap.h:440
TimingAuditor::m_timer
ISequencerTimerTool * m_timer
the timer tool
Definition: TimingAuditor.cpp:76
ISequencerTimerTool::stop
virtual double stop(int index)=0
stop the counter, return the elapsed time
TimingAuditor::m_incSvc
SmartIF< IIncidentSvc > m_incSvc
incident service
Definition: TimingAuditor.cpp:74
ISequencerTimerTool::addTimer
virtual int addTimer(const std::string &name)=0
add a timer entry with the specified name