| The Gaudi Framework v30r0 (c919700c)

- 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...
const 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 cached level (originally extracted 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 > >
MSG::Level | setUpMessaging ()
| Set up local caches. More...
MSG::Level | resetMessaging ()
| Reinitialize internal states. More...
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## 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 138 of file AlgTool.cpp.

140 : m_type( type ),
141 m_name( name ),
142 m_parent( parent )
143 {
144 addRef(); // Initial count set to 1
145
146 IInterface* _p = const_cast<IInterface*>( parent );
147
148 if ( Algorithm* _alg = dynamic_cast<Algorithm*>( _p ) ) {
149 m_svcLocator = _alg->serviceLocator();
150 m_threadID = getGaudiThreadIDfromName( _alg->name() );
151 } else if ( Service* _svc = dynamic_cast<Service*>( _p ) ) {
152 m_svcLocator = _svc->serviceLocator();
153 m_threadID = getGaudiThreadIDfromName( _svc->name() );
154 } else if ( AlgTool* _too = dynamic_cast<AlgTool*>( _p ) ) {
155 m_svcLocator = _too->serviceLocator();
156 m_threadID = getGaudiThreadIDfromName( _too->m_threadID );
157 } else if ( Auditor* _aud = dynamic_cast<Auditor*>( _p ) ) {
158 m_svcLocator = _aud->serviceLocator();
159 m_threadID = getGaudiThreadIDfromName( _aud->name() );
160 } else {
161 throw GaudiException( "Failure to create tool '" + type + "/" + name + "': illegal parent type '" +
162 System::typeinfoName( typeid( *_p ) ) + "'",
163 "AlgTool", 0 );
164 }
165
166 // initialize output level from MessageSvc and initialize messaging (before enabling update handler)
167 m_outputLevel.value() = setUpMessaging();
168 m_outputLevel.declareUpdateHandler(
169 [this]( Gaudi::Details::PropertyBase& ) { this->updateMsgStreamOutputLevel( this->m_outputLevel ); } );
170
171 // inherit output level from parent
172 { // get the "OutputLevel" property from parent
173 SmartIF<IProperty> pprop( _p );
174 if ( pprop && pprop->hasProperty( "OutputLevel" ) ) {
175 m_outputLevel.assign( pprop->getProperty( "OutputLevel" ) );
176 }
177 }
178
179 {
180 // Auditor monitoring properties
181 // Initialize the default value from ApplicationMgr AuditAlgorithms
182 Gaudi::Property<bool> audit( false );
183 // note that here we need that the service locator is already defined
184 auto appMgr = serviceLocator()->service<IProperty>( "ApplicationMgr" );
185 if ( appMgr && appMgr->hasProperty( "AuditTools" ) ) {
186 audit.assign( appMgr->getProperty( "AuditTools" ) );
187 }
188 m_auditInit = audit;
189 m_auditorInitialize = audit;
190 m_auditorStart = audit;
191 m_auditorStop = audit;
192 m_auditorFinalize = audit;
193 m_auditorReinitialize = audit;
194 m_auditorRestart = audit;
195 }
196
197 // check thread ID and try if tool name indicates thread ID
198 if ( m_threadID.empty() ) {
199 m_threadID = getGaudiThreadIDfromName( AlgTool::name() );
200 }
201 }
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:336
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:188
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:79
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
CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >::setUpMessaging
MSG::Level setUpMessaging()
Set up local caches.
Definition: CommonMessaging.h:166
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 401 of file AlgTool.cpp.

403 {
404 if ( m_pMonitorSvc ) {
405 m_pMonitorSvc->undeclareAll( this );
406 }
407 }
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 530 of file AlgTool.cpp.

531 {
532 //-----------------------------------------------------------------------------
533 vis->visit( this );
534
535 for ( auto tool : tools() ) vis->visit( dynamic_cast<AlgTool*>( tool ) );
536 }
IDataHandleVisitor::visit
virtual void visit(const IDataHandleHolder *)=0
AlgTool::tools
const std::vector< IAlgTool * > & tools() const
Definition: AlgTool.cpp:480
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 517 of file AlgTool.cpp.

518 {
519 //---------------------------------------------------------------------------
520 if ( !m_pAuditorSvc ) {
521 m_pAuditorSvc = service( "AuditorSvc", true );
522 if ( !m_pAuditorSvc ) {
523 throw GaudiException( "Service [AuditorSvc] not found", name(), StatusCode::FAILURE );
524 }
525 }
526 return m_pAuditorSvc.get();
527 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
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
StatusCode::FAILURE
Definition: StatusCode.h:29

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

Definition at line 539 of file AlgTool.cpp.

540 {
541 //-----------------------------------------------------------------------------
542
543 for ( auto h : outputHandles() ) h->commit();
544
545 for ( auto t : m_tools ) {
546 AlgTool* at = dynamic_cast<AlgTool*>( t );
547 if ( at ) at->commitHandles();
548 }
549 }
AlgTool::commitHandles
void commitHandles() override
Definition: AlgTool.cpp:539
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
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:29
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:246
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:26
ToolHandle::initialize
StatusCode initialize(const std::string &toolTypeAndName, const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:208
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:115
std::vector::begin
T begin(T...args)
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:124
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
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::FAILURE
Definition: StatusCode.h:29

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

Definition at line 313 of file AlgTool.cpp.

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

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 243 of file AlgTool.cpp.

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

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

Definition at line 409 of file AlgTool.cpp.

410 {
411
412 IAlgTool* tool = nullptr;
413 for ( auto thArr : m_toolHandleArrays ) {
414 if ( !thArr->retrieved() ) {
415 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) )
416 debug() << "ToolHandleArray " << thArr->propertyName() << " not used: not registering any of its Tools"
417 << endmsg;
418 } else {
419 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) )
420 debug() << "Registering all Tools in ToolHandleArray " << thArr->propertyName() << endmsg;
421 // Iterate over its tools:
422 for ( auto toolHandle : thArr->getBaseArray() ) {
423 // Try to cast it into a BaseToolHandle pointer:
424 BaseToolHandle* bth = dynamic_cast<BaseToolHandle*>( toolHandle );
425 if ( bth ) {
426 // If the cast was successful, the code is pretty simple:
427 tool = bth->get();
428 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) {
429 debug() << "Adding " << ( bth->isPublic() ? "public" : "private" ) << " ToolHandle tool " << tool->name()
430 << " (" << tool->type() << ") from ToolHandleArray " << thArr->propertyName() << endmsg;
431 }
432 m_tools.push_back( tool );
433 } else {
434 // If it wasn't for some strange reason, then fall back on the
435 // logic implemented previously:
436 if ( toolSvc()->retrieveTool( toolHandle->typeAndName(), tool, this, false ).isSuccess() ) {
437 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) {
438 debug() << "Adding private"
439 << " ToolHandle tool " << tool->name() << " (" << tool->type() << ") from ToolHandleArray "
440 << thArr->propertyName() << endmsg;
441 }
442 m_tools.push_back( tool );
443 } else if ( toolSvc()->retrieveTool( toolHandle->typeAndName(), tool, 0, false ).isSuccess() ) {
444 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) {
445 debug() << "Adding public"
446 << " ToolHandle tool " << tool->name() << " (" << tool->type() << ") from ToolHandleArray "
447 << thArr->propertyName() << endmsg;
448 }
449 m_tools.push_back( tool );
450 } else {
451 warning() << "Error retrieving Tool " << toolHandle->typeAndName() << " in ToolHandleArray "
452 << thArr->propertyName() << ". Not registered" << endmsg;
453 }
454 }
455 }
456 }
457 }
458
459 for ( auto th : m_toolHandles ) {
460 if ( !th->isEnabled() ) {
461 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) && !th->typeAndName().empty() )
462 debug() << "ToolHandle " << th->typeAndName() << " not used" << endmsg;
463 continue;
464 }
465 if ( !th->get() ) {
466 auto sc = th->retrieve();
467 if ( UNLIKELY( sc.isFailure() ) ) {
468 throw GaudiException( "Failed to retrieve tool " + th->typeAndName(), this->name(), StatusCode::FAILURE );
469 }
470 }
471 tool = th->get();
472 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) )
473 debug() << "Adding " << ( th->isPublic() ? "public" : "private" ) << " ToolHandle tool " << tool->name() << " ("
474 << tool->type() << ")" << endmsg;
475 m_tools.push_back( tool );
476 }
477 m_toolHandlesInit = true;
478 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:128
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
AlgTool::m_toolHandlesInit
bool m_toolHandlesInit
Definition: AlgTool.h:324
IAlgTool::type
virtual const std::string & type() const =0
The type of an AlgTool, meaning the concrete AlgTool class.
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:109
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
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:115
IAlgTool
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
BaseToolHandle::get
const IAlgTool * get() const
Definition: ToolHandle.h:80
StatusCode::FAILURE
Definition: StatusCode.h:29
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:124
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.
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::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
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:26
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
StatusCode::FAILURE
Definition: StatusCode.h:29
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:115
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:124
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 340 of file AlgTool.cpp.

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

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

Definition at line 383 of file AlgTool.cpp.

385 {
386 // Default implementation is stop+start
387 StatusCode sc = stop();
388 if ( sc.isFailure() ) {
389 error() << "restart(): cannot be stopped" << endmsg;
390 return sc;
391 }
392 sc = start();
393 if ( sc.isFailure() ) {
394 error() << "restart(): cannot be started" << endmsg;
395 return sc;
396 }
397 return StatusCode::SUCCESS;
398 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:61
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:106
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
AlgTool::stop
StatusCode stop() override
Definition: AlgTool.cpp:291
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:268
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:496
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:496

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 510 of file AlgTool.cpp.

511 {
512 const ServiceLocatorHelper helper( *serviceLocator(), *this );
513 return helper.service( name, quiet, createIf );
514 }
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 496 of file AlgTool.cpp.

497 {
498 const ServiceLocatorHelper helper( *serviceLocator(), *this );
499 return helper.getService( svcName, createIf, iid, ppSvc );
500 }
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 503 of file AlgTool.cpp.

505 {
506 const ServiceLocatorHelper helper( *serviceLocator(), *this );
507 return helper.createService( svcType, svcName, iid, ppSvc );
508 }
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 return StatusCode::SUCCESS;
135 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:61
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
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
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
StatusCode::FAILURE
Definition: StatusCode.h:29
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 268 of file AlgTool.cpp.

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

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

Definition at line 291 of file AlgTool.cpp.

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

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 299 of file AlgTool.cpp.

300 {
301 //-----------------------------------------------------------------------------
302 return attempt( *this, "sysFinalize", [&]() {
303 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::FINALIZE, m_state );
304 Gaudi::Guards::AuditorGuard guard( this,
305 // check if we want to audit the initialize
306 m_auditorFinalize ? auditorSvc() : nullptr, IAuditor::Finalize );
307 StatusCode sc = finalize();
308 if ( sc.isSuccess() ) m_state = m_targetState;
309 return sc;
310 } );
311 }
Gaudi::StateMachine::FINALIZE
Definition: StateMachine.h:30
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
AlgTool::finalize
StatusCode finalize() override
Definition: AlgTool.cpp:313
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
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:517
AlgTool::m_auditorFinalize
Gaudi::Property< bool > m_auditorFinalize
Definition: AlgTool.h:314

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

Initialize AlgTool.

Definition at line 204 of file AlgTool.cpp.

205 {
206 //-----------------------------------------------------------------------------
207 return attempt( *this, "sysInitialize", [&]() {
208 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::INITIALIZE, m_state );
209 Gaudi::Guards::AuditorGuard guard( this,
210 // check if we want to audit the initialize
211 m_auditorInitialize ? auditorSvc() : nullptr, IAuditor::Initialize );
212 StatusCode sc = initialize();
213 if ( !sc ) return sc;
214
215 m_state = m_targetState;
216 if ( m_updateDataHandles ) acceptDHVisitor( m_updateDataHandles.get() );
217
218 // check for explicit circular data dependencies in declared handles
219 DataObjIDColl out;
220 for ( auto& h : outputHandles() ) {
221 if ( !h->objKey().empty() ) out.emplace( h->fullKey() );
222 }
223 for ( auto& h : inputHandles() ) {
224 if ( !h->objKey().empty() && out.find( h->fullKey() ) != out.end() ) {
225 error() << "Explicit circular data dependency found for id " << h->fullKey() << endmsg;
226 sc = StatusCode::FAILURE;
227 }
228 }
229
230 if ( !sc ) return sc;
231
232 // visit all sub-tools, build full set
233 DHHVisitor avis( m_inputDataObjs, m_outputDataObjs );
234 acceptDHVisitor( &avis );
235
236 // initialize handles
237 initDataHandleHolder(); // this should 'freeze' the handle configuration.
238
239 return sc;
240 } );
241 }
AlgTool::acceptDHVisitor
virtual void acceptDHVisitor(IDataHandleVisitor *) const override
Definition: AlgTool.cpp:530
AlgTool::initialize
StatusCode initialize() override
Definition: AlgTool.cpp:243
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:106
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
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
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
StatusCode::FAILURE
Definition: StatusCode.h:29
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:517
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 321 of file AlgTool.cpp.

322 {
323 //-----------------------------------------------------------------------------
324
325 // Check that the current status is the correct one.
326 if ( Gaudi::StateMachine::INITIALIZED != FSMState() ) {
327 error() << "sysReinitialize(): cannot reinitialize tool not initialized" << endmsg;
328 return StatusCode::FAILURE;
329 }
330
331 return attempt( *this, "SysReinitialize()", [&]() {
332 Gaudi::Guards::AuditorGuard guard( this,
333 // check if we want to audit the initialize
334 m_auditorReinitialize ? auditorSvc() : nullptr, IAuditor::ReInitialize );
335 return reinitialize();
336 } );
337 }
Gaudi::StateMachine::INITIALIZED
Definition: StateMachine.h:17
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:106
AlgTool::reinitialize
StatusCode reinitialize() override
Definition: AlgTool.cpp:340
StatusCode::FAILURE
Definition: StatusCode.h:29
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:517
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 363 of file AlgTool.cpp.

364 {
365 //-----------------------------------------------------------------------------
366
367 // Check that the current status is the correct one.
368 if ( Gaudi::StateMachine::RUNNING != FSMState() ) {
369 error() << "sysRestart(): cannot reinitialize tool not started" << endmsg;
370 return StatusCode::FAILURE;
371 }
372
373 return attempt( *this, "sysRestart", [&]() {
374 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::START, m_state );
375 Gaudi::Guards::AuditorGuard guard( this,
376 // check if we want to audit the initialize
377 m_auditorRestart ? auditorSvc() : nullptr, IAuditor::ReStart );
378 return restart();
379 } );
380 }
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:106
AlgTool::restart
StatusCode restart() override
Definition: AlgTool.cpp:383
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
StatusCode::FAILURE
Definition: StatusCode.h:29
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:517
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 253 of file AlgTool.cpp.

254 {
255 //-----------------------------------------------------------------------------
256 return attempt( *this, "sysStart", [&]() {
257 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::START, m_state );
258 Gaudi::Guards::AuditorGuard guard( this,
259 // check if we want to audit the initialize
260 m_auditorStart ? auditorSvc() : nullptr, IAuditor::Start );
261 StatusCode sc = start();
262 if ( sc.isSuccess() ) m_state = m_targetState;
263 return sc;
264 } );
265 }
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:50
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
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:517
AlgTool::start
StatusCode start() override
Definition: AlgTool.cpp:268

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

Stop AlgTool.

Definition at line 276 of file AlgTool.cpp.

277 {
278 //-----------------------------------------------------------------------------
279 return attempt( *this, "sysStop", [&]() {
280 m_targetState = Gaudi::StateMachine::ChangeState( Gaudi::StateMachine::STOP, m_state );
281 Gaudi::Guards::AuditorGuard guard( this,
282 // check if we want to audit the initialize
283 m_auditorStop ? auditorSvc() : nullptr, IAuditor::Stop );
284 StatusCode sc = stop();
285 if ( sc.isSuccess() ) m_state = m_targetState;
286 return sc;
287 } );
288 }
IAuditor::Stop
Definition: IAuditor.h:25
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
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:291
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:517

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:29

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

Definition at line 480 of file AlgTool.cpp.

481 {
482 if ( UNLIKELY( !m_toolHandlesInit ) ) initToolHandles();
483
484 return m_tools;
485 }
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:409

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

Definition at line 487 of file AlgTool.cpp.

488 {
489 if ( UNLIKELY( !m_toolHandlesInit ) ) initToolHandles();
490
491 return m_tools;
492 }
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:409

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
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
StatusCode::FAILURE
Definition: StatusCode.h:29

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