| The Gaudi Framework v29r0 (ff2e7097)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
AlgTool Class Reference

Base class from which all the concrete tool classes should be derived. More...

`#include <GaudiKernel/AlgTool.h>`

Inheritance diagram for AlgTool:
[legend]
Collaboration diagram for AlgTool:
[legend]

## Public Types
typedef Gaudi::PluginService::Factory< IAlgTool *, const std::string &, const std::string &, const IInterface * > | Factory
Public Types inherited from extends< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >, IDataHandleHolder >
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 PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
| Typedef used to refer to this class from derived classes, as in. More...
Public Types inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
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...

## Public Member Functions
StatusCode | queryInterface (const InterfaceID &riid, void **ppvUnknown) override
| Query for a given interface. More...
const std::string & | name () const override
| Retrieve full identifying name of the concrete tool object. More...
const std::string & | type () const override
| Retrieve type (concrete class) of the sub-algtool. More...
const IInterface * | parent () const override
| Retrieve parent of the sub-algtool. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
StatusCode | reinitialize () override
StatusCode | restart () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | sysInitialize () override
| Initialize AlgTool. More...
StatusCode | sysStart () override
| Start AlgTool. More...
StatusCode | sysStop () override
| Stop AlgTool. More...
StatusCode | sysFinalize () override
| Finalize AlgTool. More...
StatusCode | sysReinitialize () override
| Initialize AlgTool. More...
StatusCode | sysRestart () override
| Start AlgTool. More...
| AlgTool (const std::string &type, const std::string &name, const IInterface *parent)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| Retrieve pointer to service locator. More...
ISvcLocator * | svcLoc () const
| shortcut for the method service locator More...
IDataProviderSvc * | evtSvc () const
| accessor to event service service More...
IToolSvc * | toolSvc () const
| The standard ToolSvc service, Return a pointer to the service if present. More...
StatusCode | setProperties ()
| Method for setting declared properties to the values specified in the jobOptions via the job option service. More...
template<class T >
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. More...
template<class T >
StatusCode | service (const std::string &type, const std::string &name, T *&svc) const
| Access a service by name, type creating it if it doesn't already exist. More...
SmartIF< IService > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
| Return a pointer to the service identified by name (or "type/name") More...
template<typename T >
SmartIF< T > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
template<class T >
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none")
template<class T >
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
template<class T >
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none")
template<class T >
void | addToolsArray (ToolHandleArray< T > &hndlArr)
virtual void | acceptDHVisitor (IDataHandleVisitor *) const override
void | commitHandles () override
void | registerTool (IAlgTool *tool) const
void | deregisterTool (IAlgTool *tool) const
const std::vector< IAlgTool * > & | tools () const
IAuditorSvc * | auditorSvc () const
| Access the auditor service. More...
IMonitorSvc * | monitorSvc () const
| Access the monitor service. More...
template<class T >
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const
| Declare monitoring information. More...
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
| Declare monitoring information (special case) More...
| ~AlgTool () override
Public Member Functions inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
std::vector< Gaudi::DataHandle * > | inputHandles () const override
std::vector< Gaudi::DataHandle * > | outputHandles () const override
virtual const DataObjIDColl & | extraInputDeps () const override
virtual const DataObjIDColl & | extraOutputDeps () const override
void | declare (Gaudi::DataHandle &handle) override
void | renounce (Gaudi::DataHandle &handle) override
const DataObjIDColl & | inputDataObjs () const override
const DataObjIDColl & | outputDataObjs () const override
void | addDependency (const DataObjID &id, const Gaudi::DataHandle::Mode &mode) override
Public Member Functions inherited from extends< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >, IDataHandleHolder >
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::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
| PropertyHolder ()=default
| ~PropertyHolder () override=default
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop)
| Declare a property. More...
Gaudi::Details::PropertyBase * | declareProperty (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::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none") const
Gaudi::Details::PropertyBase * | declareProperty (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::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
| Declare a remote property. More...
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override
| set the property form another property More...
StatusCode | setProperty (const std::string &s) override
| set the property from the formatted string More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| set the property from name and the value More...
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override
| get the property More...
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override
| get the property by name More...
StatusCode | getProperty (const std::string &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 (const std::string &name) const override
| Return true if we have a property with the given name. More...
| PropertyHolder (const PropertyHolder &)=delete
PropertyHolder & | operator= (const PropertyHolder &)=delete
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleBase &ref, const std::string &doc="none")
| Specializations for various GaudiHandles. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleArrayBase &ref, const std::string &doc="none")
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, DataObjectHandleBase &ref, const std::string &doc="none")
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
Public Member Functions inherited from extend_interfaces< Interfaces... >
| ~extend_interfaces () override=default
| Virtual destructor. More...

## Protected Member Functions
template<typename I >
void | declareInterface (I *i)
std::vector< IAlgTool * > & | tools ()
Protected Member Functions inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
void | initDataHandleHolder ()
| initializes all handles - called by the sysInitialize method of any descendant of this More...
Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
Gaudi::Details::PropertyBase * | property (const std::string &name) const
Protected Member Functions inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Protected Attributes
std::unique_ptr< IDataHandleVisitor > | m_updateDataHandles
| Hook for for derived classes to provide a custom visitor for data handles. More...
Protected Attributes inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
DataObjIDColl | m_inputDataObjs
DataObjIDColl | m_outputDataObjs

## Private Types
typedef std::list< std::pair< InterfaceID, void * > > | InterfaceList

## Private Member Functions
void | initToolHandles () const
StatusCode | service_i (const std::string &algName, bool createIf, const InterfaceID &iid, void **ppSvc) const
| flag indicating whether ToolHandle tools have been added to m_tools More...
StatusCode | service_i (const std::string &svcType, const std::string &svcName, const InterfaceID &iid, void **ppS) const

## Private Attributes
std::string | m_type
| AlgTool type (concrete class name) More...
const std::string | m_name
| AlgTool full name. More...
const IInterface * | m_parent = nullptr
| AlgTool parent. More...
SmartIF< ISvcLocator > | m_svcLocator
| Pointer to Service Locator service. More...
SmartIF< IDataProviderSvc > | m_evtSvc
| Event data service. More...
SmartIF< IToolSvc > | m_ptoolSvc
| Tool service. More...
SmartIF< IMonitorSvc > | m_pMonitorSvc
| Online Monitoring Service. More...
SmartIF< IAuditorSvc > | m_pAuditorSvc
| Auditor Service. More...
InterfaceList | m_interfaceList
| Interface list. More...
Gaudi::Property< int > | m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"}
Gaudi::Property< std::string > | m_monitorSvcName
Gaudi::Property< bool > | m_auditInit {this, "AuditTools", false, "[[deprecated]] unused"}
Gaudi::Property< bool > | m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"}
Gaudi::Property< bool > | m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"}
Gaudi::Property< bool > | m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"}
Gaudi::Property< bool > | m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"}
Gaudi::Property< bool > | m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"}
Gaudi::Property< bool > | m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"}
std::string | m_threadID
| Thread Id for Alg Tool. More...
std::vector< IAlgTool * > | m_tools
std::vector< BaseToolHandle * > | m_toolHandles
std::vector< GaudiHandleArrayBase * > | m_toolHandleArrays
bool | m_toolHandlesInit = false
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::CONFIGURED
| state of the Tool More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::CONFIGURED
| state of the Tool More...

## Detailed Description

Base class from which all the concrete tool classes should be derived.

Specific methods for doing something useful should be implemented in the concrete tools. Sub-types of this class could implement an additional interface for behavior common to sets of concrete tools (for example vertexers).

Author
  Gloria Corti
  Pere Mato

Definition at line 48 of file AlgTool.h.

## Member Typedef Documentation

typedef Gaudi::PluginService::Factory<IAlgTool*, const std::string&, const std::string&, const IInterface*> AlgTool::Factory

Definition at line 54 of file AlgTool.h.

typedef std::list<std::pair<InterfaceID, void*> > AlgTool::InterfaceList
| private

Definition at line 290 of file AlgTool.h.

## Constructor & Destructor Documentation

AlgTool::AlgTool | ( | const std::string & | type,
|  | const std::string & | name,
|  | const IInterface * | parent
| ) |  |

Standard Constructor.

Parameters

  type | the concrete class of the sub-algtool
  name | the full name of the concrete sub-algtool
  parent | the parent of the concrete sub-algtool

Definition at line 139 of file AlgTool.cpp.

141 : m_type( type ),
142 m_name( name ),
143 m_parent( parent )
144 {
145 addRef(); // Initial count set to 1
146
147 IInterface* _p = const_cast<IInterface*>( parent );
148
149 // inherit output level from parent
150 { // get the "OutputLevel" property from parent
151 SmartIF<IProperty> pprop( _p );
152 if ( pprop && pprop->hasProperty( "OutputLevel" ) ) {
153 m_outputLevel.assign( pprop->getProperty( "OutputLevel" ) );
154 }
155 }
156 m_outputLevel.declareUpdateHandler(
157 [this]( Gaudi::Details::PropertyBase& ) { this->updateMsgStreamOutputLevel( this->m_outputLevel ); } );
158
159 if ( Algorithm* _alg = dynamic_cast<Algorithm*>( _p ) ) {
160 m_svcLocator = _alg->serviceLocator();
161 m_threadID = getGaudiThreadIDfromName( _alg->name() );
162 } else if ( Service* _svc = dynamic_cast<Service*>( _p ) ) {
163 m_svcLocator = _svc->serviceLocator();
164 m_threadID = getGaudiThreadIDfromName( _svc->name() );
165 } else if ( AlgTool* _too = dynamic_cast<AlgTool*>( _p ) ) {
166 m_svcLocator = _too->serviceLocator();
167 m_threadID = getGaudiThreadIDfromName( _too->m_threadID );
168 } else if ( Auditor* _aud = dynamic_cast<Auditor*>( _p ) ) {
169 m_svcLocator = _aud->serviceLocator();
170 m_threadID = getGaudiThreadIDfromName( _aud->name() );
171 } else {
172 throw GaudiException( "Failure to create tool '" + type + "/" + name + "': illegal parent type '" +
173 System::typeinfoName( typeid( *_p ) ) + "'",
174 "AlgTool", 0 );
175 }
176
177 {
178 // Auditor monitoring properties
179 // Initialize the default value from ApplicationMgr AuditAlgorithms
180 Gaudi::Property<bool> audit( false );
181 // note that here we need that the service locator is already defined
182 auto appMgr = serviceLocator()->service<IProperty>( "ApplicationMgr" );
183 if ( appMgr && appMgr->hasProperty( "AuditTools" ) ) {
184 audit.assign( appMgr->getProperty( "AuditTools" ) );
185 }
186 m_auditInit = audit;
187 m_auditorInitialize = audit;
188 m_auditorStart = audit;
189 m_auditorStop = audit;
190 m_auditorFinalize = audit;
191 m_auditorReinitialize = audit;
192 m_auditorRestart = audit;
193 }
194
195 // check thread ID and try if tool name indicates thread ID
196 if ( m_threadID.empty() ) {
197 m_threadID = getGaudiThreadIDfromName( AlgTool::name() );
198 }
199 }
SmartIF< IProperty >
std::string::empty
T empty(T...args)
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84
AlgTool::m_auditorStart
Gaudi::Property< bool > m_auditorStart
Definition: AlgTool.h:312
AlgTool::m_type
std::string m_type
AlgTool type (concrete class name)
Definition: AlgTool.h:292
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:319
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:329
AlgTool::m_parent
const IInterface * m_parent
AlgTool parent.
Definition: AlgTool.h:294
AlgTool::m_auditorReinitialize
Gaudi::Property< bool > m_auditorReinitialize
Definition: AlgTool.h:315
AlgTool::m_name
const std::string m_name
AlgTool full name.
Definition: AlgTool.h:293
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:79
AlgTool::m_outputLevel
Gaudi::Property< int > m_outputLevel
Definition: AlgTool.h:305
CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >::updateMsgStreamOutputLevel
void updateMsgStreamOutputLevel(int level)
Update the output level of the cached MsgStream.
Definition: CommonMessaging.h:184
IInterface
Definition of the basic interface.
Definition: IInterface.h:277
AlgTool::m_threadID
std::string m_threadID
Thread Id for Alg Tool.
Definition: AlgTool.h:318
AlgTool::m_auditorStop
Gaudi::Property< bool > m_auditorStop
Definition: AlgTool.h:313
Gaudi::Details::PropertyBase
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
Definition: Property.h:32
AlgTool::m_auditorRestart
Gaudi::Property< bool > m_auditorRestart
Definition: AlgTool.h:316
Algorithm
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:78
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
AlgTool::m_auditInit
Gaudi::Property< bool > m_auditInit
Definition: AlgTool.h:310
AlgTool
Base class from which all the concrete tool classes should be derived.
Definition: AlgTool.h:48
AlgTool::parent
const IInterface * parent() const override
Retrieve parent of the sub-algtool.
Definition: AlgTool.cpp:77
AlgTool::m_svcLocator
SmartIF< ISvcLocator > m_svcLocator
Pointer to Service Locator service.
Definition: AlgTool.h:296
IOTest.appMgr
appMgr
Definition: IOTest.py:94
AlgTool::m_auditorInitialize
Gaudi::Property< bool > m_auditorInitialize
Definition: AlgTool.h:311
IProperty
The IProperty is the basic interface for all components which have properties that can be set or get...
Definition: IProperty.h:20
Service
Base class for all services.
Definition: Service.h:36
getGaudiThreadIDfromName
GAUDI_API std::string getGaudiThreadIDfromName(const std::string &name)
helper function to extract Gaudi Thread ID from thread copy name
Definition: ThreadGaudi.cpp:27
AlgTool::m_auditorFinalize
Gaudi::Property< bool > m_auditorFinalize
Definition: AlgTool.h:314
Auditor
Base class from which all concrete auditor classes should be derived.
Definition: Auditor.h:35

AlgTool::~AlgTool | ( |  | ) |
| override

Definition at line 399 of file AlgTool.cpp.

401 {
402 if ( m_pMonitorSvc ) {
403 m_pMonitorSvc->undeclareAll( this );
404 }
405 }
AlgTool::m_pMonitorSvc
SmartIF< IMonitorSvc > m_pMonitorSvc
Online Monitoring Service.
Definition: AlgTool.h:299
IMonitorSvc::undeclareAll
virtual void undeclareAll(const IInterface *owner)=0
Undeclare monitoring information.

## Member Function Documentation

void AlgTool::acceptDHVisitor | ( | IDataHandleVisitor * | vis | ) | const
| override virtual

Definition at line 521 of file AlgTool.cpp.

522 {
523 //-----------------------------------------------------------------------------
524 vis->visit( this );
525
526 for ( auto tool : tools() ) vis->visit( dynamic_cast<AlgTool*>( tool ) );
527 }
IDataHandleVisitor::visit
virtual void visit(const IDataHandleHolder *)=0
AlgTool::tools
const std::vector< IAlgTool * > & tools() const
Definition: AlgTool.cpp:471
template<class T >

void AlgTool::addToolsArray | ( | ToolHandleArray< T > & | hndlArr | ) |
| inline

Definition at line 199 of file AlgTool.h.

200 {
201 m_toolHandleArrays.push_back( &hndlArr );
202 }
std::vector::push_back
T push_back(T...args)
AlgTool::m_toolHandleArrays
std::vector< GaudiHandleArrayBase * > m_toolHandleArrays
Definition: AlgTool.h:323

IAuditorSvc * AlgTool::auditorSvc | ( |  | ) | const

Access the auditor service.

Definition at line 508 of file AlgTool.cpp.

509 {
510 //---------------------------------------------------------------------------
511 if ( !m_pAuditorSvc ) {
512 m_pAuditorSvc = service( "AuditorSvc", true );
513 if ( !m_pAuditorSvc ) {
514 throw GaudiException( "Service [AuditorSvc] not found", name(), StatusCode::FAILURE );
515 }
516 }
517 return m_pAuditorSvc.get();
518 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
StatusCode::FAILURE
Definition: StatusCode.h:31
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:82
AlgTool::service
StatusCode service(const std::string &name, T *&svc, bool createIf=true) const
Access a service by name, creating it if it doesn&#39;t already exist.
Definition: AlgTool.h:132
AlgTool::m_pAuditorSvc
SmartIF< IAuditorSvc > m_pAuditorSvc
Auditor Service.
Definition: AlgTool.h:300
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63

void AlgTool::commitHandles | ( |  | ) |
| override

Definition at line 530 of file AlgTool.cpp.

531 {
532 //-----------------------------------------------------------------------------
533
534 for ( auto h : outputHandles() ) h->commit();
535
536 for ( auto t : m_tools ) {
537 AlgTool* at = dynamic_cast<AlgTool*>( t );
538 if ( at ) at->commitHandles();
539 }
540 }
AlgTool::commitHandles
void commitHandles() override
Definition: AlgTool.cpp:530
AlgTool::m_tools
std::vector< IAlgTool * > m_tools
Definition: AlgTool.h:321
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::outputHandles
std::vector< Gaudi::DataHandle * > outputHandles() const override
Definition: DataHandleHolderBase.h:34
HiveAlgSequencer.h
h
Definition: HiveAlgSequencer.py:24
AlgTool
Base class from which all the concrete tool classes should be derived.
Definition: AlgTool.h:48

StatusCode AlgTool::configure | ( |  | ) |
| inline override

Definition at line 70 of file AlgTool.h.

70 { return StatusCode::SUCCESS; }
StatusCode::SUCCESS
Definition: StatusCode.h:31
template<class T >

void AlgTool::declareInfo | ( | const std::string & | name,
|  | const T & | var,
|  | const std::string & | desc
| ) |  | const
| inline

Declare monitoring information.

Parameters

  name | Monitoring information name known to the external system
  var | Monitoring Listener address (the item to monitor...)
  desc | Textual description of the information being monitored

Definition at line 266 of file AlgTool.h.

267 {
268 IMonitorSvc* mS = monitorSvc();
269 if ( mS ) mS->declareInfo( name, var, desc, this );
270 }
AlgTool::monitorSvc
IMonitorSvc * monitorSvc() const
Access the monitor service.
Definition: AlgTool.h:253
IMonitorSvc
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
Definition: IMonitorSvc.h:24
IMonitorSvc::declareInfo
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.

void AlgTool::declareInfo | ( | const std::string & | name,
|  | const std::string & | format,
|  | const void * | var,
|  | int | size,
|  | const std::string & | desc
| ) |  | const
| inline

Declare monitoring information (special case)

Parameters

  name | Monitoring information name known to the external system
  format | Format information
  var | Monitoring Listener address
  size | Monitoring Listener address size
  desc | Textual description of the information being monitored

Definition at line 279 of file AlgTool.h.

281 {
282 IMonitorSvc* mS = monitorSvc();
283 if ( mS ) mS->declareInfo( name, format, var, size, desc, this );
284 }
AlgTool::monitorSvc
IMonitorSvc * monitorSvc() const
Access the monitor service.
Definition: AlgTool.h:253
IMonitorSvc
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
Definition: IMonitorSvc.h:24
IMonitorSvc::declareInfo
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
template<typename I >

void AlgTool::declareInterface | ( | I * | i | ) |
| inline protected

Definition at line 156 of file AlgTool.h.

157 {
158 m_interfaceList.emplace_back( I::interfaceID(), i );
159 }
AlgTool::m_interfaceList
InterfaceList m_interfaceList
Interface list.
Definition: AlgTool.h:302
std::list::emplace_back
T emplace_back(T...args)
template<class T >

Gaudi::Details::PropertyBase* AlgTool::declareProperty | ( | const std::string & | name,
|  | ToolHandle< T > & | hndl,
|  | const std::string & | doc = `"none"`
| ) |  |
| inline

Definition at line 165 of file AlgTool.h.

167 {
168 this->declareTool( hndl, hndl.typeAndName() ).ignore();
169 return PropertyHolderImpl::declareProperty( name, hndl, doc );
170 }
PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Details::PropertyBase &prop)
Declare a property.
Definition: PropertyHolder.h:99
ToolHandle::typeAndName
std::string typeAndName() const override
Definition: ToolHandle.h:223
AlgTool::declareTool
StatusCode declareTool(ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
Definition: AlgTool.h:173
template<class T >

Gaudi::Details::PropertyBase* AlgTool::declareProperty | ( | const std::string & | name,
|  | ToolHandleArray< T > & | hndlArr,
|  | const std::string & | doc = `"none"`
| ) |  |
| inline

Definition at line 191 of file AlgTool.h.

193 {
194 addToolsArray( hndlArr );
195 return PropertyHolderImpl::declareProperty( name, hndlArr, doc );
196 }
AlgTool::addToolsArray
void addToolsArray(ToolHandleArray< T > &hndlArr)
Definition: AlgTool.h:199
PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Details::PropertyBase &prop)
Declare a property.
Definition: PropertyHolder.h:99
template<class T >

StatusCode AlgTool::declareTool | ( | ToolHandle< T > & | handle,
|  | std::string | toolTypeAndName,
|  | bool | createIf = `true`
| ) |  |
| inline

Definition at line 173 of file AlgTool.h.

174 {
175
176 StatusCode sc = handle.initialize( toolTypeAndName, handle.isPublic() ? nullptr : this, createIf );
177 if ( UNLIKELY( !sc ) ) {
178 throw GaudiException{std::string{"Cannot create handle for "} + ( handle.isPublic() ? "public" : "private" ) +
179 " tool " + toolTypeAndName,
180 name(), sc};
181 }
182
183 m_toolHandles.push_back( &handle );
184
185 return sc;
186 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
ToolHandleInfo::isPublic
bool isPublic() const noexcept
Definition: ToolHandle.h:37
std::string
STL class.
std::vector::push_back
T push_back(T...args)
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
ToolHandle::initialize
StatusCode initialize(const std::string &toolTypeAndName, const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:185
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
AlgTool::m_toolHandles
std::vector< BaseToolHandle * > m_toolHandles
Definition: AlgTool.h:322

void AlgTool::deregisterTool | ( | IAlgTool * | tool | ) | const
| inline

Definition at line 216 of file AlgTool.h.

217 {
218 auto it = std::find( m_tools.begin(), m_tools.end(), tool );
219 if ( it != m_tools.end() ) {
220 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) debug() << "De-Registering tool " << tool->name() << endmsg;
221 m_tools.erase( it );
222 } else {
223 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) debug() << "Could not de-register tool " << tool->name() << endmsg;
224 }
225 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
MSG::DEBUG
Definition: IMessageSvc.h:16
std::vector::end
T end(T...args)
AlgTool::m_tools
std::vector< IAlgTool * > m_tools
Definition: AlgTool.h:321
std::vector::erase
T erase(T...args)
std::find
T find(T...args)
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:120
std::vector::begin
T begin(T...args)
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the output level from the embedded MsgStream
Definition: CommonMessaging.h:129
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
INamedInterface::name
virtual const std::string & name() const =0
Retrieve the name of the instance.

IDataProviderSvc * AlgTool::evtSvc | ( |  | ) | const

accessor to event service service

Returns
  pointer to detector service

Definition at line 93 of file AlgTool.cpp.

94 {
95 if ( !m_evtSvc ) {
96 m_evtSvc = service( "EventDataSvc", true );
97 if ( !m_evtSvc ) {
98 throw GaudiException( "Service [EventDataSvc] not found", name(), StatusCode::FAILURE );
99 }
100 }
101 return m_evtSvc.get();
102 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
StatusCode::FAILURE
Definition: StatusCode.h:31
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:82
AlgTool::service
StatusCode service(const std::string &name, T *&svc, bool createIf=true) const
Access a service by name, creating it if it doesn&#39;t already exist.
Definition: AlgTool.h:132
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
AlgTool::m_evtSvc
SmartIF< IDataProviderSvc > m_evtSvc
Event data service.
Definition: AlgTool.h:297

StatusCode AlgTool::finalize | ( |  | ) |
| override

Definition at line 311 of file AlgTool.cpp.

313 {
314 // For the time being there is nothing to be done here.
315 return StatusCode::SUCCESS;
316 }
StatusCode::SUCCESS
Definition: StatusCode.h:31

Gaudi::StateMachine::State AlgTool::FSMState | ( |  | ) | const
| inline override

Definition at line 78 of file AlgTool.h.

78 { return m_state; }
AlgTool::m_state
Gaudi::StateMachine::State m_state
state of the Tool
Definition: AlgTool.h:331

StatusCode AlgTool::initialize | ( |  | ) |
| override

Definition at line 241 of file AlgTool.cpp.

243 {
244 // For the time being there is nothing to be done here.
245 // Setting the properties is done by the ToolSvc calling setProperties()
246 // explicitly.
247 return StatusCode::SUCCESS;
248 }
StatusCode::SUCCESS
Definition: StatusCode.h:31

void AlgTool::initToolHandles | ( |  | ) | const
| private

Definition at line 407 of file AlgTool.cpp.

408 {
409
410 IAlgTool* tool( 0 );
411 for ( auto thArr : m_toolHandleArrays ) {
412 if ( !thArr->retrieved() ) {
413 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) )
414 debug() << "ToolHandleArray " << thArr->propertyName() << " not used: not registering any of its Tools"
415 << endmsg;
416 } else {
417 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) )
418 debug() << "Registering all Tools in ToolHandleArray " << thArr->propertyName() << endmsg;
419 // Iterate over its tools:
420 for ( auto toolHandle : thArr->getBaseArray() ) {
421 // Try to cast it into a BaseToolHandle pointer:
422 BaseToolHandle* bth = dynamic_cast<BaseToolHandle*>( toolHandle );
423 if ( bth ) {
424 // If the cast was successful, the code is pretty simple:
425 tool = bth->get();
426 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) {
427 debug() << "Adding " << ( bth->isPublic() ? "public" : "private" ) << " ToolHandle tool " << tool->name()
428 << " (" << tool->type() << ") from ToolHandleArray " << thArr->propertyName() << endmsg;
429 }
430 m_tools.push_back( tool );
431 } else {
432 // If it wasn't for some strange reason, then fall back on the
433 // logic implemented previously:
434 if ( toolSvc()->retrieveTool( toolHandle->typeAndName(), tool, this, false ).isSuccess() ) {
435 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) {
436 debug() << "Adding private"
437 << " ToolHandle tool " << tool->name() << " (" << tool->type() << ") from ToolHandleArray "
438 << thArr->propertyName() << endmsg;
439 }
440 m_tools.push_back( tool );
441 } else if ( toolSvc()->retrieveTool( toolHandle->typeAndName(), tool, 0, false ).isSuccess() ) {
442 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) {
443 debug() << "Adding public"
444 << " ToolHandle tool " << tool->name() << " (" << tool->type() << ") from ToolHandleArray "
445 << thArr->propertyName() << endmsg;
446 }
447 m_tools.push_back( tool );
448 } else {
449 warning() << "Error retrieving Tool " << toolHandle->typeAndName() << " in ToolHandleArray "
450 << thArr->propertyName() << ". Not registered" << endmsg;
451 }
452 }
453 }
454 }
455 }
456
457 for ( auto th : m_toolHandles ) {
458 tool = th->get();
459 if ( tool ) {
460 m_tools.push_back( tool );
461 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) )
462 debug() << "Adding " << ( th->isPublic() ? "Public" : "Private" ) << " ToolHandle tool " << tool->name() << " ("
463 << tool->type() << ")" << endmsg;
464 } else {
465 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) debug() << "ToolHandle " << th->typeAndName() << " not used" << endmsg;
466 }
467 }
468 m_toolHandlesInit = true;
469 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
AlgTool::m_toolHandlesInit
bool m_toolHandlesInit
Definition: AlgTool.h:324
ToolHandleInfo::isPublic
bool isPublic() const noexcept
Definition: ToolHandle.h:37
MSG::DEBUG
Definition: IMessageSvc.h:16
AlgTool::toolSvc
IToolSvc * toolSvc() const
The standard ToolSvc service, Return a pointer to the service if present.
Definition: AlgTool.cpp:104
BaseToolHandle
Non-templated base class for actual ToolHandle<T>.
Definition: ToolHandle.h:67
AlgTool::m_tools
std::vector< IAlgTool * > m_tools
Definition: AlgTool.h:321
std::vector::push_back
T push_back(T...args)
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:114
AlgTool::m_toolHandles
std::vector< BaseToolHandle * > m_toolHandles
Definition: AlgTool.h:322
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:120
IAlgTool
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
BaseToolHandle::get
const IAlgTool * get() const
Definition: ToolHandle.h:78
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the output level from the embedded MsgStream
Definition: CommonMessaging.h:129
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
AlgTool::m_toolHandleArrays
std::vector< GaudiHandleArrayBase * > m_toolHandleArrays
Definition: AlgTool.h:323

IMonitorSvc* AlgTool::monitorSvc | ( |  | ) | const
| inline

Access the monitor service.

Attention
  Note that this method will return a NULL pointer if no monitor service is configured to be present. You must take this possibility into account when using the pointer

Returns
  Pointer to the Monitor service

Return values

  NULL | No monitor service is present
  non-NULL | A monitor service is present and available to be used

Definition at line 253 of file AlgTool.h.

254 {
255 // If not already located try to locate it without forcing a creation
256 if ( !m_pMonitorSvc ) m_pMonitorSvc = service( m_monitorSvcName, false, true );
257 return m_pMonitorSvc.get();
258 }
AlgTool::m_pMonitorSvc
SmartIF< IMonitorSvc > m_pMonitorSvc
Online Monitoring Service.
Definition: AlgTool.h:299
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:82
AlgTool::service
StatusCode service(const std::string &name, T *&svc, bool createIf=true) const
Access a service by name, creating it if it doesn&#39;t already exist.
Definition: AlgTool.h:132
AlgTool::m_monitorSvcName
Gaudi::Property< std::string > m_monitorSvcName
Definition: AlgTool.h:307

const std::string & AlgTool::name | ( |  | ) | const
| override

Retrieve full identifying name of the concrete tool object.

Definition at line 63 of file AlgTool.cpp.

65 {
66 return m_name;
67 }
AlgTool::m_name
const std::string m_name
AlgTool full name.
Definition: AlgTool.h:293

const IInterface * AlgTool::parent | ( |  | ) | const
| override

Retrieve parent of the sub-algtool.

Definition at line 77 of file AlgTool.cpp.

79 {
80 return m_parent;
81 }
AlgTool::m_parent
const IInterface * m_parent
AlgTool parent.
Definition: AlgTool.h:294

StatusCode AlgTool::queryInterface | ( | const InterfaceID & | riid,
|  | void ** | ppvUnknown
| ) |  |
| override

Query for a given interface.

Definition at line 44 of file AlgTool.cpp.

46 {
47 if ( !ppvi ) {
48 return StatusCode::FAILURE;
49 } // RETURN
50 StatusCode sc = base_class::queryInterface( riid, ppvi );
51 if ( sc.isSuccess() ) return sc;
52 auto i = std::find_if( std::begin( m_interfaceList ), std::end( m_interfaceList ),
53 [&]( const std::pair<InterfaceID, void*>& item ) { return item.first.versionMatch( riid ); } );
54 if ( i == std::end( m_interfaceList ) ) {
55 *ppvi = nullptr;
56 return NO_INTERFACE; // RETURN
57 }
58 *ppvi = i->second;
59 addRef();
60 return SUCCESS; // RETURN
61 }
StatusCode::FAILURE
Definition: StatusCode.h:31
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
GaudiPython.Bindings.SUCCESS
SUCCESS
Definition: Bindings.py:56
std::end
T end(T...args)
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
std::pair< InterfaceID, void * >
std::find_if
T find_if(T...args)
std::begin
T begin(T...args)
AlgTool::m_interfaceList
InterfaceList m_interfaceList
Interface list.
Definition: AlgTool.h:302
queryInterface
StatusCode queryInterface(const InterfaceID &iid, void **pinterface) override

void AlgTool::registerTool | ( | IAlgTool * | tool | ) | const
| inline

Definition at line 210 of file AlgTool.h.

211 {
212 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) debug() << "Registering tool " << tool->name() << endmsg;
213 m_tools.push_back( tool );
214 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
MSG::DEBUG
Definition: IMessageSvc.h:16
AlgTool::m_tools
std::vector< IAlgTool * > m_tools
Definition: AlgTool.h:321
std::vector::push_back
T push_back(T...args)
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:120
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the output level from the embedded MsgStream
Definition: CommonMessaging.h:129
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
INamedInterface::name
virtual const std::string & name() const =0
Retrieve the name of the instance.

StatusCode AlgTool::reinitialize | ( |  | ) |
| override

Definition at line 338 of file AlgTool.cpp.

340 {
341 /* @TODO
342 * MCl 2008-10-23: the implementation of reinitialize as finalize+initialize
343 * is causing too many problems
344 *
345 // Default implementation is finalize+initialize
346 StatusCode sc = finalize();
347 if (sc.isFailure()) {
348 error() << "reinitialize(): cannot be finalized" << endmsg;
349 return sc;
350 }
351 sc = initialize();
352 if (sc.isFailure()) {
353 error() << "reinitialize(): cannot be initialized" << endmsg;
354 return sc;
355 }
356 */
357 return StatusCode::SUCCESS;
358 }
StatusCode::SUCCESS
Definition: StatusCode.h:31

StatusCode AlgTool::restart | ( |  | ) |
| override

Definition at line 381 of file AlgTool.cpp.

383 {
384 // Default implementation is stop+start
385 StatusCode sc = stop();
386 if ( sc.isFailure() ) {
387 error() << "restart(): cannot be stopped" << endmsg;
388 return sc;
389 }
390 sc = start();
391 if ( sc.isFailure() ) {
392 error() << "restart(): cannot be started" << endmsg;
393 return sc;
394 }
395 return StatusCode::SUCCESS;
396 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:111
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
AlgTool::stop
StatusCode stop() override
Definition: AlgTool.cpp:289
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
AlgTool::start
StatusCode start() override
Definition: AlgTool.cpp:266
template<class T >

StatusCode AlgTool::service | ( | const std::string & | name,
|  | T *& | svc,
|  | bool | createIf = `true`
| ) |  | const
| inline

Access a service by name, creating it if it doesn't already exist.

Definition at line 132 of file AlgTool.h.

133 {
134 return service_i( name, createIf, T::interfaceID(), (void**)&svc );
135 }
AlgTool::service_i
StatusCode service_i(const std::string &algName, bool createIf, const InterfaceID &iid, void **ppSvc) const
flag indicating whether ToolHandle tools have been added to m_tools
Definition: AlgTool.cpp:487
template<class T >

StatusCode AlgTool::service | ( | const std::string & | type,
|  | const std::string & | name,
|  | T *& | svc
| ) |  | const
| inline

Access a service by name, type creating it if it doesn't already exist.

Definition at line 140 of file AlgTool.h.

141 {
142 return service_i( type, name, T::interfaceID(), (void**)&svc );
143 }
AlgTool::service_i
StatusCode service_i(const std::string &algName, bool createIf, const InterfaceID &iid, void **ppSvc) const
flag indicating whether ToolHandle tools have been added to m_tools
Definition: AlgTool.cpp:487

SmartIF< IService > AlgTool::service | ( | const std::string & | name,
|  | const bool | createIf = `true`,
|  | const bool | quiet = `false`
| ) |  | const

Return a pointer to the service identified by name (or "type/name")

Definition at line 501 of file AlgTool.cpp.

502 {
503 const ServiceLocatorHelper helper( *serviceLocator(), *this );
504 return helper.service( name, quiet, createIf );
505 }
ServiceLocatorHelper
an helper to share the implementation of service() among the various kernel base classes ...
Definition: ServiceLocatorHelper.h:17
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84
template<typename T >

SmartIF<T> AlgTool::service | ( | const std::string & | name,
|  | const bool | createIf = `true`,
|  | const bool | quiet = `false`
| ) |  | const
| inline

Definition at line 149 of file AlgTool.h.

150 {
151 return SmartIF<T>( service( name, createIf, quiet ) );
152 }
SmartIF
Small smart pointer class with automatic reference counting for IInterface.
Definition: IConverter.h:15
AlgTool::service
StatusCode service(const std::string &name, T *&svc, bool createIf=true) const
Access a service by name, creating it if it doesn&#39;t already exist.
Definition: AlgTool.h:132

StatusCode AlgTool::service_i | ( | const std::string & | algName,
|  | bool | createIf,
|  | const InterfaceID & | iid,
|  | void ** | ppSvc
| ) |  | const
| private

flag indicating whether ToolHandle tools have been added to m_tools

implementation of service method

Definition at line 487 of file AlgTool.cpp.

488 {
489 const ServiceLocatorHelper helper( *serviceLocator(), *this );
490 return helper.getService( svcName, createIf, iid, ppSvc );
491 }
ServiceLocatorHelper
an helper to share the implementation of service() among the various kernel base classes ...
Definition: ServiceLocatorHelper.h:17
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84

StatusCode AlgTool::service_i | ( | const std::string & | svcType,
|  | const std::string & | svcName,
|  | const InterfaceID & | iid,
|  | void ** | ppS
| ) |  | const
| private

Definition at line 494 of file AlgTool.cpp.

496 {
497 const ServiceLocatorHelper helper( *serviceLocator(), *this );
498 return helper.createService( svcType, svcName, iid, ppSvc );
499 }
ServiceLocatorHelper
an helper to share the implementation of service() among the various kernel base classes ...
Definition: ServiceLocatorHelper.h:17
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84

SmartIF< ISvcLocator > & AlgTool::serviceLocator | ( |  | ) | const
| override

Retrieve pointer to service locator.

Definition at line 84 of file AlgTool.cpp.

86 {
87 return m_svcLocator;
88 }
AlgTool::m_svcLocator
SmartIF< ISvcLocator > m_svcLocator
Pointer to Service Locator service.
Definition: AlgTool.h:296

StatusCode AlgTool::setProperties | ( |  | ) |

Method for setting declared properties to the values specified in the jobOptions via the job option service.

This method is called by the ToolSvc after creating the concrete tool, before passing it to the requesting parent and does not need to be called explicitly.

Definition at line 117 of file AlgTool.cpp.

119 {
120 if ( !m_svcLocator ) return StatusCode::FAILURE;
121 auto jos = m_svcLocator->service<IJobOptionsSvc>( "JobOptionsSvc" );
122 if ( !jos ) return StatusCode::FAILURE;
123
124 // set first generic Properties
125 StatusCode sc = jos->setMyProperties( getGaudiThreadGenericName( name() ), this );
126 if ( sc.isFailure() ) return StatusCode::FAILURE;
127
128 // set specific Properties
129 if ( isGaudiThreaded( name() ) ) {
130 if ( jos->setMyProperties( name(), this ).isFailure() ) {
131 return StatusCode::FAILURE;
132 }
133 }
134 updateMsgStreamOutputLevel( m_outputLevel );
135 return StatusCode::SUCCESS;
136 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::FAILURE
Definition: StatusCode.h:31
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
isGaudiThreaded
GAUDI_API bool isGaudiThreaded(const std::string &name)
test if current Gaudi object is running /will run in a thread
Definition: ThreadGaudi.cpp:76
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:79
IJobOptionsSvc
Main interface for the JobOptions service.
Definition: IJobOptionsSvc.h:20
AlgTool::m_outputLevel
Gaudi::Property< int > m_outputLevel
Definition: AlgTool.h:305
CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >::updateMsgStreamOutputLevel
void updateMsgStreamOutputLevel(int level)
Update the output level of the cached MsgStream.
Definition: CommonMessaging.h:184
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
AlgTool::m_svcLocator
SmartIF< ISvcLocator > m_svcLocator
Pointer to Service Locator service.
Definition: AlgTool.h:296
getGaudiThreadGenericName
GAUDI_API std::string getGaudiThreadGenericName(const std::string &name)
helper function to extract Gaudi instance name from thread copy name
Definition: ThreadGaudi.cpp:52

StatusCode AlgTool::start | ( |  | ) |
| override

Definition at line 266 of file AlgTool.cpp.

268 {
269 // For the time being there is nothing to be done here.
270 return StatusCode::SUCCESS;
271 }
StatusCode::SUCCESS
Definition: StatusCode.h:31

StatusCode AlgTool::stop | ( |  | ) |
| override

Definition at line 289 of file AlgTool.cpp.

291 {
292 // For the time being there is nothing to be done here.
293 return StatusCode::SUCCESS;
294 }
StatusCode::SUCCESS
Definition: StatusCode.h:31

ISvcLocator* AlgTool::svcLoc | ( |  | ) | const
| inline

shortcut for the method service locator

Definition at line 111 of file AlgTool.h.

111 { return serviceLocator(); }
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84

StatusCode AlgTool::sysFinalize | ( |  | ) |
| override

Finalize AlgTool.

Definition at line 297 of file AlgTool.cpp.

298 {
299 //-----------------------------------------------------------------------------
300 return attempt( *this, "sysFinalize", [&]() {
301 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::FINALIZE, m_state );
302 Gaudi::Guards::AuditorGuard guard( this,
303 // check if we want to audit the initialize
304 m_auditorFinalize ? auditorSvc() : nullptr, IAuditor::Finalize );
305 StatusCode sc = finalize();
306 if ( sc.isSuccess() ) m_state = m_targetState;
307 return sc;
308 } );
309 }
Gaudi::StateMachine::FINALIZE
Definition: StateMachine.h:30
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
AlgTool::finalize
StatusCode finalize() override
Definition: AlgTool.cpp:311
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
IAuditor::Finalize
Definition: IAuditor.h:25
AlgTool::m_state
Gaudi::StateMachine::State m_state
state of the Tool
Definition: AlgTool.h:331
Gaudi::StateMachine::ChangeState
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:11
AlgTool::m_targetState
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:332
Gaudi::Guards::AuditorGuard
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:215
AlgTool::auditorSvc
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:508
AlgTool::m_auditorFinalize
Gaudi::Property< bool > m_auditorFinalize
Definition: AlgTool.h:314

StatusCode AlgTool::sysInitialize | ( |  | ) |
| override

Initialize AlgTool.

Definition at line 202 of file AlgTool.cpp.

203 {
204 //-----------------------------------------------------------------------------
205 return attempt( *this, "sysInitialize", [&]() {
206 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::INITIALIZE, m_state );
207 Gaudi::Guards::AuditorGuard guard( this,
208 // check if we want to audit the initialize
209 m_auditorInitialize ? auditorSvc() : nullptr, IAuditor::Initialize );
210 StatusCode sc = initialize();
211 if ( !sc ) return sc;
212
213 m_state = m_targetState;
214 if ( m_updateDataHandles ) acceptDHVisitor( m_updateDataHandles.get() );
215
216 // check for explicit circular data dependencies in declared handles
217 DataObjIDColl out;
218 for ( auto& h : outputHandles() ) {
219 if ( !h->objKey().empty() ) out.emplace( h->fullKey() );
220 }
221 for ( auto& h : inputHandles() ) {
222 if ( !h->objKey().empty() && out.find( h->fullKey() ) != out.end() ) {
223 error() << "Explicit circular data dependency found for id " << h->fullKey() << endmsg;
224 sc = StatusCode::FAILURE;
225 }
226 }
227
228 if ( !sc ) return sc;
229
230 // visit all sub-tools, build full set
231 DHHVisitor avis( m_inputDataObjs, m_outputDataObjs );
232 acceptDHVisitor( &avis );
233
234 // initialize handles
235 initDataHandleHolder(); // this should 'freeze' the handle configuration.
236
237 return sc;
238 } );
239 }
AlgTool::acceptDHVisitor
virtual void acceptDHVisitor(IDataHandleVisitor *) const override
Definition: AlgTool.cpp:521
StatusCode::FAILURE
Definition: StatusCode.h:31
AlgTool::initialize
StatusCode initialize() override
Definition: AlgTool.cpp:241
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::initDataHandleHolder
void initDataHandleHolder()
initializes all handles - called by the sysInitialize method of any descendant of this ...
Definition: DataHandleHolderBase.h:74
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:111
Gaudi::StateMachine::INITIALIZE
Definition: StateMachine.h:27
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::m_inputDataObjs
DataObjIDColl m_inputDataObjs
Definition: DataHandleHolderBase.h:79
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::outputHandles
std::vector< Gaudi::DataHandle * > outputHandles() const override
Definition: DataHandleHolderBase.h:34
HiveAlgSequencer.h
h
Definition: HiveAlgSequencer.py:24
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::inputHandles
std::vector< Gaudi::DataHandle * > inputHandles() const override
Definition: DataHandleHolderBase.h:30
DHHVisitor
Definition: DataHandleHolderVisitor.h:8
std::unordered_set< DataObjID, DataObjID_Hasher >
IAuditor::Initialize
Definition: IAuditor.h:25
std::unique_ptr::get
T get(T...args)
AlgTool::m_state
Gaudi::StateMachine::State m_state
state of the Tool
Definition: AlgTool.h:331
Gaudi::StateMachine::ChangeState
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:11
std::unordered_set::emplace
T emplace(T...args)
AlgTool::m_auditorInitialize
Gaudi::Property< bool > m_auditorInitialize
Definition: AlgTool.h:311
AlgTool::m_targetState
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:332
Gaudi::Guards::AuditorGuard
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:215
AlgTool::auditorSvc
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:508
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::m_outputDataObjs
DataObjIDColl m_outputDataObjs
Definition: DataHandleHolderBase.h:79
AlgTool::m_updateDataHandles
std::unique_ptr< IDataHandleVisitor > m_updateDataHandles
Hook for for derived classes to provide a custom visitor for data handles.
Definition: AlgTool.h:233

StatusCode AlgTool::sysReinitialize | ( |  | ) |
| override

Initialize AlgTool.

Definition at line 319 of file AlgTool.cpp.

320 {
321 //-----------------------------------------------------------------------------
322
323 // Check that the current status is the correct one.
324 if ( Gaudi::StateMachine::INITIALIZED != FSMState() ) {
325 error() << "sysReinitialize(): cannot reinitialize tool not initialized" << endmsg;
326 return StatusCode::FAILURE;
327 }
328
329 return attempt( *this, "SysReinitialize()", [&]() {
330 Gaudi::Guards::AuditorGuard guard( this,
331 // check if we want to audit the initialize
332 m_auditorReinitialize ? auditorSvc() : nullptr, IAuditor::ReInitialize );
333 return reinitialize();
334 } );
335 }
Gaudi::StateMachine::INITIALIZED
Definition: StateMachine.h:17
StatusCode::FAILURE
Definition: StatusCode.h:31
IAuditor::ReInitialize
Definition: IAuditor.h:25
AlgTool::m_auditorReinitialize
Gaudi::Property< bool > m_auditorReinitialize
Definition: AlgTool.h:315
AlgTool::FSMState
Gaudi::StateMachine::State FSMState() const override
Definition: AlgTool.h:78
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:111
AlgTool::reinitialize
StatusCode reinitialize() override
Definition: AlgTool.cpp:338
Gaudi::Guards::AuditorGuard
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:215
AlgTool::auditorSvc
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:508
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode AlgTool::sysRestart | ( |  | ) |
| override

Start AlgTool.

Definition at line 361 of file AlgTool.cpp.

362 {
363 //-----------------------------------------------------------------------------
364
365 // Check that the current status is the correct one.
366 if ( Gaudi::StateMachine::RUNNING != FSMState() ) {
367 error() << "sysRestart(): cannot reinitialize tool not started" << endmsg;
368 return StatusCode::FAILURE;
369 }
370
371 return attempt( *this, "sysRestart", [&]() {
372 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::START, m_state );
373 Gaudi::Guards::AuditorGuard guard( this,
374 // check if we want to audit the initialize
375 m_auditorRestart ? auditorSvc() : nullptr, IAuditor::ReStart );
376 return restart();
377 } );
378 }
StatusCode::FAILURE
Definition: StatusCode.h:31
IAuditor::ReStart
Definition: IAuditor.h:25
AlgTool::FSMState
Gaudi::StateMachine::State FSMState() const override
Definition: AlgTool.h:78
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:111
AlgTool::restart
StatusCode restart() override
Definition: AlgTool.cpp:381
AlgTool::m_auditorRestart
Gaudi::Property< bool > m_auditorRestart
Definition: AlgTool.h:316
Gaudi::StateMachine::RUNNING
Definition: StateMachine.h:18
AlgTool::m_state
Gaudi::StateMachine::State m_state
state of the Tool
Definition: AlgTool.h:331
Gaudi::StateMachine::ChangeState
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:11
Gaudi::StateMachine::START
Definition: StateMachine.h:28
AlgTool::m_targetState
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:332
Gaudi::Guards::AuditorGuard
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:215
AlgTool::auditorSvc
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:508
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode AlgTool::sysStart | ( |  | ) |
| override

Start AlgTool.

Definition at line 251 of file AlgTool.cpp.

252 {
253 //-----------------------------------------------------------------------------
254 return attempt( *this, "sysStart", [&]() {
255 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::START, m_state );
256 Gaudi::Guards::AuditorGuard guard( this,
257 // check if we want to audit the initialize
258 m_auditorStart ? auditorSvc() : nullptr, IAuditor::Start );
259 StatusCode sc = start();
260 if ( sc.isSuccess() ) m_state = m_targetState;
261 return sc;
262 } );
263 }
IAuditor::Start
Definition: IAuditor.h:25
AlgTool::m_auditorStart
Gaudi::Property< bool > m_auditorStart
Definition: AlgTool.h:312
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
AlgTool::m_state
Gaudi::StateMachine::State m_state
state of the Tool
Definition: AlgTool.h:331
Gaudi::StateMachine::ChangeState
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:11
Gaudi::StateMachine::START
Definition: StateMachine.h:28
AlgTool::m_targetState
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:332
Gaudi::Guards::AuditorGuard
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:215
AlgTool::auditorSvc
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:508
AlgTool::start
StatusCode start() override
Definition: AlgTool.cpp:266

StatusCode AlgTool::sysStop | ( |  | ) |
| override

Stop AlgTool.

Definition at line 274 of file AlgTool.cpp.

275 {
276 //-----------------------------------------------------------------------------
277 return attempt( *this, "sysStop", [&]() {
278 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::STOP, m_state );
279 Gaudi::Guards::AuditorGuard guard( this,
280 // check if we want to audit the initialize
281 m_auditorStop ? auditorSvc() : nullptr, IAuditor::Stop );
282 StatusCode sc = stop();
283 if ( sc.isSuccess() ) m_state = m_targetState;
284 return sc;
285 } );
286 }
IAuditor::Stop
Definition: IAuditor.h:25
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
AlgTool::m_auditorStop
Gaudi::Property< bool > m_auditorStop
Definition: AlgTool.h:313
Gaudi::StateMachine::STOP
Definition: StateMachine.h:29
AlgTool::m_state
Gaudi::StateMachine::State m_state
state of the Tool
Definition: AlgTool.h:331
Gaudi::StateMachine::ChangeState
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:11
AlgTool::stop
StatusCode stop() override
Definition: AlgTool.cpp:289
AlgTool::m_targetState
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:332
Gaudi::Guards::AuditorGuard
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:215
AlgTool::auditorSvc
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:508

Gaudi::StateMachine::State AlgTool::targetFSMState | ( |  | ) | const
| inline override

Definition at line 79 of file AlgTool.h.

79 { return m_targetState; }
AlgTool::m_targetState
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:332

StatusCode AlgTool::terminate | ( |  | ) |
| inline override

Definition at line 75 of file AlgTool.h.

75 { return StatusCode::SUCCESS; }
StatusCode::SUCCESS
Definition: StatusCode.h:31

const std::vector< IAlgTool * > & AlgTool::tools | ( |  | ) | const

Definition at line 471 of file AlgTool.cpp.

472 {
473 if ( UNLIKELY( !m_toolHandlesInit ) ) initToolHandles();
474
475 return m_tools;
476 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
AlgTool::m_toolHandlesInit
bool m_toolHandlesInit
Definition: AlgTool.h:324
AlgTool::m_tools
std::vector< IAlgTool * > m_tools
Definition: AlgTool.h:321
AlgTool::initToolHandles
void initToolHandles() const
Definition: AlgTool.cpp:407

std::vector< IAlgTool * > & AlgTool::tools | ( |  | ) |
| protected

Definition at line 478 of file AlgTool.cpp.

479 {
480 if ( UNLIKELY( !m_toolHandlesInit ) ) initToolHandles();
481
482 return m_tools;
483 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
AlgTool::m_toolHandlesInit
bool m_toolHandlesInit
Definition: AlgTool.h:324
AlgTool::m_tools
std::vector< IAlgTool * > m_tools
Definition: AlgTool.h:321
AlgTool::initToolHandles
void initToolHandles() const
Definition: AlgTool.cpp:407

IToolSvc * AlgTool::toolSvc | ( |  | ) | const

The standard ToolSvc service, Return a pointer to the service if present.

Definition at line 104 of file AlgTool.cpp.

106 {
107 if ( !m_ptoolSvc ) {
108 m_ptoolSvc = service( "ToolSvc", true );
109 if ( !m_ptoolSvc ) {
110 throw GaudiException( "Service [ToolSvc] not found", name(), StatusCode::FAILURE );
111 }
112 }
113 return m_ptoolSvc.get();
114 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
StatusCode::FAILURE
Definition: StatusCode.h:31
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:82
AlgTool::service
StatusCode service(const std::string &name, T *&svc, bool createIf=true) const
Access a service by name, creating it if it doesn&#39;t already exist.
Definition: AlgTool.h:132
AlgTool::m_ptoolSvc
SmartIF< IToolSvc > m_ptoolSvc
Tool service.
Definition: AlgTool.h:298
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63

const std::string & AlgTool::type | ( |  | ) | const
| override

Retrieve type (concrete class) of the sub-algtool.

Definition at line 70 of file AlgTool.cpp.

72 {
73 return m_type;
74 }
AlgTool::m_type
std::string m_type
AlgTool type (concrete class name)
Definition: AlgTool.h:292

## Member Data Documentation

Gaudi::Property<bool> AlgTool::m_auditInit {this, "AuditTools", false, "[[deprecated]] unused"}
| private

Definition at line 310 of file AlgTool.h.

Gaudi::Property<bool> AlgTool::m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"}
| private

Definition at line 314 of file AlgTool.h.

Gaudi::Property<bool> AlgTool::m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"}
| private

Definition at line 311 of file AlgTool.h.

Gaudi::Property<bool> AlgTool::m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"}
| private

Definition at line 315 of file AlgTool.h.

Gaudi::Property<bool> AlgTool::m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"}
| private

Definition at line 316 of file AlgTool.h.

Gaudi::Property<bool> AlgTool::m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"}
| private

Definition at line 312 of file AlgTool.h.

Gaudi::Property<bool> AlgTool::m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"}
| private

Definition at line 313 of file AlgTool.h.

SmartIF<IDataProviderSvc> AlgTool::m_evtSvc
| mutable private

Event data service.

Definition at line 297 of file AlgTool.h.

InterfaceList AlgTool::m_interfaceList
| private

Interface list.

Definition at line 302 of file AlgTool.h.

Gaudi::Property<std::string> AlgTool::m_monitorSvcName
| private

Initial value:
{this, "MonitorService", "MonitorSvc",
"name to use for Monitor Service"}

Definition at line 307 of file AlgTool.h.

const std::string AlgTool::m_name
| private

AlgTool full name.

Definition at line 293 of file AlgTool.h.

Gaudi::Property<int> AlgTool::m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"}
| private

Definition at line 305 of file AlgTool.h.

const IInterface* AlgTool::m_parent = nullptr
| private

AlgTool parent.

Definition at line 294 of file AlgTool.h.

SmartIF<IAuditorSvc> AlgTool::m_pAuditorSvc
| mutable private

Auditor Service.

Definition at line 300 of file AlgTool.h.

SmartIF<IMonitorSvc> AlgTool::m_pMonitorSvc
| mutable private

Online Monitoring Service.

Definition at line 299 of file AlgTool.h.

SmartIF<IToolSvc> AlgTool::m_ptoolSvc
| mutable private

Tool service.

Definition at line 298 of file AlgTool.h.

Gaudi::StateMachine::State AlgTool::m_state = Gaudi::StateMachine::CONFIGURED
| private

state of the Tool

Definition at line 331 of file AlgTool.h.

SmartIF<ISvcLocator> AlgTool::m_svcLocator
| mutable private

Pointer to Service Locator service.

Definition at line 296 of file AlgTool.h.

Gaudi::StateMachine::State AlgTool::m_targetState = Gaudi::StateMachine::CONFIGURED
| private

state of the Tool

Definition at line 332 of file AlgTool.h.

std::string AlgTool::m_threadID
| private

Thread Id for Alg Tool.

Definition at line 318 of file AlgTool.h.

std::vector<GaudiHandleArrayBase*> AlgTool::m_toolHandleArrays
| mutable private

Definition at line 323 of file AlgTool.h.

std::vector<BaseToolHandle*> AlgTool::m_toolHandles
| mutable private

Definition at line 322 of file AlgTool.h.

bool AlgTool::m_toolHandlesInit = false
| mutable private

Definition at line 324 of file AlgTool.h.

std::vector<IAlgTool*> AlgTool::m_tools
| mutable private

Definition at line 321 of file AlgTool.h.

std::string AlgTool::m_type
| private

AlgTool type (concrete class name)

Definition at line 292 of file AlgTool.h.

std::unique_ptr<IDataHandleVisitor> AlgTool::m_updateDataHandles
| protected

Hook for for derived classes to provide a custom visitor for data handles.

Definition at line 233 of file AlgTool.h.

The documentation for this class was generated from the following files:

- GaudiKernel/GaudiKernel/AlgTool.h
- GaudiKernel/src/Lib/AlgTool.cpp