AlgTool.cpp
Go to the documentation of this file.
1 // Include files
2 #include "GaudiKernel/AlgTool.h"
3 #include "GaudiKernel/IMessageSvc.h"
4 #include "GaudiKernel/ISvcLocator.h"
5 #include "GaudiKernel/IJobOptionsSvc.h"
6 
7 #include "GaudiKernel/Algorithm.h"
8 #include "GaudiKernel/Service.h"
9 #include "GaudiKernel/Auditor.h"
10 #include "GaudiKernel/System.h"
11 #include "GaudiKernel/GaudiException.h"
12 #include "GaudiKernel/ServiceLocatorHelper.h"
13 #include "GaudiKernel/ThreadGaudi.h"
14 #include "GaudiKernel/Guards.h"
15 
16 //------------------------------------------------------------------------------
17 namespace {
18 template <typename FUN>
19 StatusCode attempt( AlgTool& tool, const char* label, FUN&& fun ) {
20  try { return fun(); }
21  catch( const GaudiException& Exception ) {
22  MsgStream log ( tool.msgSvc(), tool.name() + "." + label );
23  log << MSG::FATAL << " Exception with tag=" << Exception.tag()
24  << " is caught" << endmsg;
25  log << MSG::ERROR << Exception << endmsg;
26  }
27  catch( const std::exception& Exception ) {
28  MsgStream log ( tool.msgSvc(), tool.name() + "." + label );
29  log << MSG::FATAL << " Standard std::exception is caught" << endmsg;
30  log << MSG::ERROR << Exception.what() << endmsg;
31  }
32  catch( ... ) {
33  MsgStream log ( tool.msgSvc(), tool.name() + "." + label );
34  log << MSG::FATAL << "UNKNOWN Exception is caught" << endmsg;
35  }
36  return StatusCode::FAILURE ;
37 }
38 }
39 
40 //------------------------------------------------------------------------------
42 ( const InterfaceID& riid,
43  void** ppvi )
44 //------------------------------------------------------------------------------
45 {
46  if ( !ppvi ) { return StatusCode::FAILURE ; } // RETURN
47  StatusCode sc = base_class::queryInterface(riid,ppvi);
48  if (sc.isSuccess()) return sc;
49  auto i = std::find_if( std::begin(m_interfaceList), std::end(m_interfaceList),
50  [&](const std::pair<InterfaceID,void*>& item) {
51  return item.first.versionMatch(riid);
52  } );
53  if ( i == std::end(m_interfaceList) ) {
54  *ppvi = nullptr ;
55  return NO_INTERFACE ; // RETURN
56  }
57  *ppvi = i->second ;
58  addRef() ;
59  return SUCCESS ; // RETURN
60 }
61 //------------------------------------------------------------------------------
62 const std::string& AlgTool::name() const
63 //------------------------------------------------------------------------------
64 {
65  return m_name;
66 }
67 
68 //------------------------------------------------------------------------------
69 const std::string& AlgTool::type() const
70 //------------------------------------------------------------------------------
71 {
72  return m_type;
73 }
74 
75 //------------------------------------------------------------------------------
77 //------------------------------------------------------------------------------
78 {
79  return m_parent;
80 }
81 
82 //------------------------------------------------------------------------------
84 //------------------------------------------------------------------------------
85 {
86  return m_svcLocator;
87 }
88 
89 //------------------------------------------------------------------------------
91 //------------------------------------------------------------------------------
92 {
93  return m_messageSvc;
94 }
95 
96 //------------------------------------------------------------------------------
98 //------------------------------------------------------------------------------
99 {
100  if ( !m_ptoolSvc ) {
101  m_ptoolSvc = service( "ToolSvc", true );
102  if( !m_ptoolSvc ) {
103  throw GaudiException("Service [ToolSvc] not found", name(), StatusCode::FAILURE);
104  }
105  }
106  return m_ptoolSvc.get();
107 }
108 
109 //------------------------------------------------------------------------------
111 //------------------------------------------------------------------------------
112 {
113  return m_propertyMgr->setProperty(p);
114 }
115 
116 //------------------------------------------------------------------------------
117 StatusCode AlgTool::setProperty(const std::string& s)
118 //------------------------------------------------------------------------------
119 {
120  return m_propertyMgr->setProperty(s);
121 }
122 
123 //------------------------------------------------------------------------------
124 StatusCode AlgTool::setProperty(const std::string& n, const std::string& v)
125 //------------------------------------------------------------------------------
126 {
127  return m_propertyMgr->setProperty(n,v);
128 }
129 
130 //------------------------------------------------------------------------------
132 //------------------------------------------------------------------------------
133 {
134  return m_propertyMgr->getProperty(p);
135 }
136 
137 //------------------------------------------------------------------------------
138 const Property& AlgTool::getProperty(const std::string& n) const
139 {
140  return m_propertyMgr->getProperty(n);
141 }
142 
143 //------------------------------------------------------------------------------
144 StatusCode AlgTool::getProperty(const std::string& n, std::string& v ) const
145 //------------------------------------------------------------------------------
146 {
147  return m_propertyMgr->getProperty(n,v);
148 }
149 
150 //------------------------------------------------------------------------------
151 const std::vector<Property*>& AlgTool::getProperties() const
152 //------------------------------------------------------------------------------
153 {
154  return m_propertyMgr->getProperties();
155 }
156 
157 bool AlgTool::hasProperty(const std::string& name) const {
158  return m_propertyMgr->hasProperty(name);
159 }
160 
161 //------------------------------------------------------------------------------
163 //------------------------------------------------------------------------------
164 {
165  if( !m_svcLocator ) return StatusCode::FAILURE;
166  auto jos = m_svcLocator->service<IJobOptionsSvc>("JobOptionsSvc");
167  if( !jos ) return StatusCode::FAILURE;
168 
169  // set first generic Properties
170  StatusCode sc = jos->setMyProperties( getGaudiThreadGenericName(name()), this );
171  if( sc.isFailure() ) return StatusCode::FAILURE;
172 
173  // set specific Properties
174  if (isGaudiThreaded(name())) {
175  if(jos->setMyProperties( name(), this ).isFailure()) {
176  return StatusCode::FAILURE;
177  }
178  }
179 
180  // Change my own outputlevel
181  if ( m_messageSvc ) {
182  if ( MSG::NIL != m_outputLevel )
183  { m_messageSvc -> setOutputLevel ( name (), m_outputLevel ) ; }
185  }
186  return StatusCode::SUCCESS;
187 }
188 
189 //------------------------------------------------------------------------------
190 AlgTool::AlgTool( const std::string& type,
191  const std::string& name,
192  const IInterface* parent)
193 //------------------------------------------------------------------------------
194  : m_type ( type )
195  , m_name ( name )
196  , m_parent ( parent )
197  , m_propertyMgr ( new PropertyMgr() )
198 {
199  addRef(); // Initial count set to 1
200 
201  declareProperty( "MonitorService", m_monitorSvcName = "MonitorSvc" );
202 
203  { // get the "OutputLevel" property from parent
204  const Property* _p = Gaudi::Utils::getProperty ( parent , "OutputLevel") ;
205  if ( _p ) { m_outputLevel.assign( *_p ) ; }
206  declareProperty ( "OutputLevel" , m_outputLevel ) ;
208  }
209 
210  IInterface* _p = const_cast<IInterface*> ( parent ) ;
211 
212  if ( Algorithm* _alg = dynamic_cast<Algorithm*> ( _p ) )
213  {
214  m_svcLocator = _alg -> serviceLocator () ;
215  m_messageSvc = _alg -> msgSvc () ;
216  m_threadID = getGaudiThreadIDfromName ( _alg -> name() ) ;
217  }
218  else if ( Service* _svc = dynamic_cast<Service*> ( _p ) )
219  {
220  m_svcLocator = _svc -> serviceLocator () ;
221  m_messageSvc = _svc -> msgSvc () ;
222  m_threadID = getGaudiThreadIDfromName ( _svc -> name() ) ;
223  }
224  else if ( AlgTool* _too = dynamic_cast<AlgTool*> ( _p ) )
225  {
226  m_svcLocator = _too -> serviceLocator ();
227  m_messageSvc = _too -> msgSvc ();
229  }
230  else if ( Auditor* _aud = dynamic_cast<Auditor*> ( _p ) )
231  {
232  m_svcLocator = _aud -> serviceLocator() ;
233  m_messageSvc = _aud -> msgSvc() ;
234  m_threadID = getGaudiThreadIDfromName ( _aud -> name() ) ;
235  }
236  else
237  {
238  throw GaudiException
239  ( "Failure to create tool '"
240  + type + "/" + name + "': illegal parent type '"
241  + System::typeinfoName(typeid(*_p)) + "'", "AlgTool", 0 );
242  }
243 
244 
245  { // audit tools
246  auto appMgr = m_svcLocator->service<IProperty>("ApplicationMgr");
247  if ( !appMgr ) {
248  throw GaudiException("Could not locate ApplicationMgr","AlgTool",0);
249  }
250  const Property* p = Gaudi::Utils::getProperty( appMgr , "AuditTools");
251  if ( p ) { m_auditInit.assign ( *p ) ; }
252  declareProperty ( "AuditTools", m_auditInit );
253  bool audit = m_auditInit.value();
254  // Declare common AlgTool properties with their defaults
255  declareProperty ( "AuditInitialize" , m_auditorInitialize = audit ) ;
256  declareProperty ( "AuditStart" , m_auditorStart = audit ) ;
257  declareProperty ( "AuditStop" , m_auditorStop = audit ) ;
258  declareProperty ( "AuditFinalize" , m_auditorFinalize = audit ) ;
259  }
260 
261  // check thread ID and try if tool name indicates thread ID
262  if ( m_threadID.empty() )
264 }
265 
266 //-----------------------------------------------------------------------------
268 //-----------------------------------------------------------------------------
269  return attempt( *this, "sysInitialize", [&]() {
271  Gaudi::Guards::AuditorGuard guard(this,
272  // check if we want to audit the initialize
273  m_auditorInitialize ? auditorSvc() : nullptr,
276  if (sc.isSuccess()) m_state = m_targetState;
277  return sc;
278  } );
279 }
280 //------------------------------------------------------------------------------
282 //------------------------------------------------------------------------------
283 {
284  // For the time being there is nothing to be done here.
285  // Setting the properties is done by the ToolSvc calling setProperties()
286  // explicitly.
287  return StatusCode::SUCCESS;
288 }
289 
290 //-----------------------------------------------------------------------------
292 //-----------------------------------------------------------------------------
293  return attempt( *this, "sysInitialize", [&]() {
295  Gaudi::Guards::AuditorGuard guard(this,
296  // check if we want to audit the initialize
297  m_auditorStart ? auditorSvc() : nullptr,
299  StatusCode sc = start();
300  if (sc.isSuccess()) m_state = m_targetState;
301  return sc;
302  } );
303 }
304 
305 //------------------------------------------------------------------------------
307 //------------------------------------------------------------------------------
308 {
309  // For the time being there is nothing to be done here.
310  return StatusCode::SUCCESS;
311 }
312 
313 //-----------------------------------------------------------------------------
315 //-----------------------------------------------------------------------------
316  return attempt( *this, "sysStop", [&]() {
318  Gaudi::Guards::AuditorGuard guard(this,
319  // check if we want to audit the initialize
320  m_auditorStop ? auditorSvc() : nullptr,
322  StatusCode sc = stop();
323  if (sc.isSuccess()) m_state = m_targetState;
324  return sc;
325  } );
326 }
327 
328 //------------------------------------------------------------------------------
330 //------------------------------------------------------------------------------
331 {
332  // For the time being there is nothing to be done here.
333  return StatusCode::SUCCESS;
334 }
335 
336 //-----------------------------------------------------------------------------
338 //-----------------------------------------------------------------------------
339  return attempt( *this, "sysFinalize", [&]() {
341  Gaudi::Guards::AuditorGuard guard(this,
342  // check if we want to audit the initialize
343  m_auditorFinalize ? auditorSvc() : nullptr,
345  StatusCode sc = finalize();
346  if (sc.isSuccess()) m_state = m_targetState;
347  return sc;
348  } );
349 }
350 //------------------------------------------------------------------------------
352 //------------------------------------------------------------------------------
353 {
354  // For the time being there is nothing to be done here.
355  return StatusCode::SUCCESS;
356 }
357 
358 //-----------------------------------------------------------------------------
360 //-----------------------------------------------------------------------------
361 
362  // Check that the current status is the correct one.
364  MsgStream log ( msgSvc(), name() );
365  log << MSG::ERROR
366  << "sysReinitialize(): cannot reinitialize tool not initialized"
367  << endmsg;
368  return StatusCode::FAILURE;
369  }
370 
371  return attempt(*this, "SysReinitialize()", [&]() {
372  Gaudi::Guards::AuditorGuard guard(this,
373  // check if we want to audit the initialize
374  m_auditorReinitialize ? auditorSvc() : nullptr,
376  return reinitialize();
377  } );
378 
379 }
380 
381 //------------------------------------------------------------------------------
383 //------------------------------------------------------------------------------
384 {
385  /* @TODO
386  * MCl 2008-10-23: the implementation of reinitialize as finalize+initialize
387  * is causing too many problems
388  *
389  // Default implementation is finalize+initialize
390  StatusCode sc = finalize();
391  if (sc.isFailure()) {
392  MsgStream log ( msgSvc(), name() );
393  log << MSG::ERROR << "reinitialize(): cannot be finalized" << endmsg;
394  return sc;
395  }
396  sc = initialize();
397  if (sc.isFailure()) {
398  MsgStream log ( msgSvc(), name() );
399  log << MSG::ERROR << "reinitialize(): cannot be initialized" << endmsg;
400  return sc;
401  }
402  */
403  return StatusCode::SUCCESS;
404 }
405 
406 //-----------------------------------------------------------------------------
408 //-----------------------------------------------------------------------------
409 
410  // Check that the current status is the correct one.
412  MsgStream log ( msgSvc(), name() );
413  log << MSG::ERROR
414  << "sysRestart(): cannot reinitialize tool not started"
415  << endmsg;
416  return StatusCode::FAILURE;
417  }
418 
419  return attempt(*this, "sysRestart", [&]() {
421  Gaudi::Guards::AuditorGuard guard(this,
422  // check if we want to audit the initialize
423  m_auditorRestart ? auditorSvc() : nullptr,
425  return restart();
426  } );
427 }
428 
429 //------------------------------------------------------------------------------
431 //------------------------------------------------------------------------------
432 {
433  // Default implementation is stop+start
434  StatusCode sc = stop();
435  if (sc.isFailure()) {
436  MsgStream log ( msgSvc(), name() );
437  log << MSG::ERROR << "restart(): cannot be stopped" << endmsg;
438  return sc;
439  }
440  sc = start();
441  if (sc.isFailure()) {
442  MsgStream log ( msgSvc(), name() );
443  log << MSG::ERROR << "restart(): cannot be started" << endmsg;
444  return sc;
445  }
446  return StatusCode::SUCCESS;
447 }
448 
449 //------------------------------------------------------------------------------
451 //------------------------------------------------------------------------------
452 {
453  if( m_pMonitorSvc ) { m_pMonitorSvc->undeclareAll(this); }
454 }
455 
456 //------------------------------------------------------------------------------
459 AlgTool::service_i(const std::string& svcName,
460  bool createIf,
461  const InterfaceID& iid,
462  void** ppSvc) const {
463  const ServiceLocatorHelper helper(*serviceLocator(), *this);
464  return helper.getService(svcName, createIf, iid, ppSvc);
465 }
466 
467 //------------------------------------------------------------------------------
469 AlgTool::service_i(const std::string& svcType,
470  const std::string& svcName,
471  const InterfaceID& iid,
472  void** ppSvc) const {
473  const ServiceLocatorHelper helper(*serviceLocator(), *this);
474  return helper.createService(svcType, svcName, iid, ppSvc);
475 }
476 
477 SmartIF<IService> AlgTool::service(const std::string& name, const bool createIf, const bool quiet) const {
478  const ServiceLocatorHelper helper(*serviceLocator(), *this);
479  return helper.service(name, quiet, createIf);
480 }
481 
482 //-----------------------------------------------------------------------------
484 //---------------------------------------------------------------------------
485  if ( !m_pAuditorSvc ) {
486  m_pAuditorSvc = service( "AuditorSvc", true );
487  if( !m_pAuditorSvc ) {
488  throw GaudiException("Service [AuditorSvc] not found", name(), StatusCode::FAILURE);
489  }
490  }
491  return m_pAuditorSvc.get();
492 }
493 
494 
495 //-----------------------------------------------------------------------------
497 //-----------------------------------------------------------------------------
498  // do nothing... yet ?
499 }
500 
void initOutputLevel(Property &prop)
callback for output level property
Definition: AlgTool.cpp:496
The interface implemented by the IToolSvc base class.
Definition: IToolSvc.h:17
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
an helper to share the implementation of service() among the various kernel base classes ...
Define general base for Gaudi exception.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
GAUDI_API std::string getGaudiThreadIDfromName(const std::string &name)
helper function to extract Gaudi Thread ID from thread copy name
Definition: ThreadGaudi.cpp:26
std::string m_type
AlgTool type (concrete class name)
Definition: AlgTool.h:320
SmartIF< IAuditorSvc > m_pAuditorSvc
Auditor Service.
Definition: AlgTool.h:342
StatusCode initialize() override
Definition: AlgTool.cpp:281
StatusCode service_i(const std::string &algName, bool createIf, const InterfaceID &iid, void **ppSvc) const
implementation of service method
Definition: AlgTool.cpp:459
StatusCode setProperty(const Property &p) override
set the property form another property
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API bool isGaudiThreaded(const std::string &name)
test if current Gaudi object is running /will run in a thread
Definition: ThreadGaudi.cpp:73
auto begin(reverse_wrapper< T > &w)
Definition: reverse.h:45
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:299
IMessageSvc * m_messageSvc
Message service.
Definition: AlgTool.h:324
State GAUDI_API ChangeState(const Transition transition, const State state)
Function to get the new state according to the required transition, checking if the transition is all...
Definition: StateMachine.cpp:8
IToolSvc * toolSvc() const
The standard ToolSvc service, Return a pointer to the service if present.
Definition: AlgTool.cpp:97
StatusCode sysReinitialize() override
Initialize AlgTool.
Definition: AlgTool.cpp:359
SmartIF< IMonitorSvc > m_pMonitorSvc
Online Monitoring Service.
Definition: AlgTool.h:326
IntegerProperty m_outputLevel
AlgTool output level.
Definition: AlgTool.h:319
GAUDI_API std::string getGaudiThreadGenericName(const std::string &name)
helper function to extract Gaudi instance name from thread copy name
Definition: ThreadGaudi.cpp:50
~AlgTool() override
Definition: AlgTool.cpp:450
Property manager helper class.
Definition: PropertyMgr.h:34
StatusCode queryInterface(const InterfaceID &riid, void **ppvUnknown) override
Query for a given interface.
Definition: AlgTool.cpp:42
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
ISvcLocator * serviceLocator() const
Retrieve pointer to service locator.
Definition: AlgTool.cpp:83
StatusCode setProperties()
Method for setting declared properties to the values specified in the jobOptions via the job option s...
Definition: AlgTool.cpp:162
StatusCode sysStart() override
Start AlgTool.
Definition: AlgTool.cpp:291
Gaudi::StateMachine::State FSMState() const override
Definition: AlgTool.h:65
StatusCode sysStop() override
Stop AlgTool.
Definition: AlgTool.cpp:314
StatusCode getProperty(Property *p) const override
get the property
bool hasProperty(const std::string &name) const override
Definition: AlgTool.cpp:157
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
std::string m_monitorSvcName
Name to use for Monitor Service.
Definition: AlgTool.h:327
StatusCode finalize() override
Definition: AlgTool.cpp:351
const std::string m_name
AlgTool full name.
Definition: AlgTool.h:321
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:78
Interface ID class.
Definition: IInterface.h:30
AlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Constructor.
Definition: AlgTool.cpp:190
Main interface for the JobOptions service.
StatusCode setProperty(const Property &p) override
Default implementations for IProperty interface.
Definition: AlgTool.cpp:110
IMessageSvc * msgSvc() const
Retrieve pointer to message service.
Definition: AlgTool.cpp:90
auto end(reverse_wrapper< T > &w)
Definition: reverse.h:47
unsigned long addRef() override
Reference Interface instance.
Definition: implements.h:43
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: AlgTool.h:234
Definition of the basic interface.
Definition: IInterface.h:234
const std::vector< Property * > & getProperties() const override
get all properties
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: AlgTool.h:328
The IMessage is the interface implemented by the message service.
Definition: IMessageSvc.h:57
std::string m_threadID
Thread Id for Alg Tool.
Definition: AlgTool.h:330
const IInterface * m_parent
AlgTool parent.
Definition: AlgTool.h:322
StatusCode service(const std::string &name, T *&svc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: AlgTool.h:180
virtual const std::string & tag() const
name tag for the exception, or exception type
StatusCode restart() override
Definition: AlgTool.cpp:430
const TYPE & value() const
explicit conversion
Definition: Property.h:341
GAUDI_API Property * getProperty(const IProperty *p, const std::string &name)
simple function which gets the property with given name from the component
Definition: Property.cpp:276
bool m_auditorFinalize
flag for auditors in "finalize()"
Definition: AlgTool.h:348
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:61
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:38
bool assign(const Property &source) override
get the value from another property
Definition: Property.h:269
Gaudi::StateMachine::State m_state
state of the Tool
Definition: AlgTool.h:352
double fun(const std::vector< double > &x)
Definition: PFuncTest.cpp:26
bool m_auditorReinitialize
flag for auditors in "reinitialize()"
Definition: AlgTool.h:349
Base class from which all the concrete tool classes should be derived.
Definition: AlgTool.h:34
int outputLevel() const
get tool's output level
Definition: AlgTool.h:302
string s
Definition: gaudirun.py:246
bool hasProperty(const std::string &name) const override
Return true if we have a property with the given name.
tuple item
print s1,s2
Definition: ana.py:146
virtual void declareUpdateHandler(std::function< void(Property &)> fun)
set new callback for update
Definition: Property.cpp:71
ISvcLocator * m_svcLocator
Pointer to Service Locator service.
Definition: AlgTool.h:323
bool m_auditorRestart
flag for auditors in "restart()"
Definition: AlgTool.h:350
tuple appMgr
Definition: IOTest.py:83
const std::vector< Property * > & getProperties() const override
Definition: AlgTool.cpp:151
const std::string & type() const override
Retrieve type (concrete class) of the sub-algtool.
Definition: AlgTool.cpp:69
SmartIF< IService > service(const std::string &name, const bool quiet=false, const bool createIf=true) const
StatusCode reinitialize() override
Definition: AlgTool.cpp:382
SmartIF< IToolSvc > m_ptoolSvc
Tool service.
Definition: AlgTool.h:325
StatusCode stop() override
Definition: AlgTool.cpp:329
BooleanProperty m_auditInit
Definition: AlgTool.h:344
StatusCode sysInitialize() override
Initialize AlgTool.
Definition: AlgTool.cpp:267
bool m_auditorStart
flag for auditors in "start()"
Definition: AlgTool.h:346
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:353
The IProperty is the basic interface for all components which have properties that can be set or get...
Definition: IProperty.h:21
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:214
The interface implemented by the IAuditorSvc base class.
Definition: IAuditorSvc.h:15
Base class for all services.
Definition: Service.h:33
StatusCode getProperty(Property *p) const override
Definition: AlgTool.cpp:131
bool m_auditorStop
flag for auditors in "stop()"
Definition: AlgTool.h:347
virtual void undeclareAll(const IInterface *owner)=0
Undeclare monitoring information.
list i
Definition: ana.py:128
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:62
StatusCode getService(const std::string &name, bool createIf, const InterfaceID &iid, void **ppSvc) const
bool m_auditorInitialize
flag for auditors in "initialize()"
Definition: AlgTool.h:345
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:483
StatusCode sysFinalize() override
Finalize AlgTool.
Definition: AlgTool.cpp:337
string type
Definition: gaudirun.py:151
StatusCode createService(const std::string &name, const InterfaceID &iid, void **ppSvc) const
Base class from which all concrete auditor classes should be derived.
Definition: Auditor.h:34
StatusCode sysRestart() override
Start AlgTool.
Definition: AlgTool.cpp:407
StatusCode start() override
Definition: AlgTool.cpp:306
const IInterface * parent() const override
Retrieve parent of the sub-algtool.
Definition: AlgTool.cpp:76