The Gaudi Framework  v40r0 (475e45c1)
AlgTool Class Reference

#include <GaudiKernel/AlgTool.h>

Inheritance diagram for AlgTool:
Collaboration diagram for AlgTool:

Public Types

using Factory = Gaudi::PluginService::Factory< IAlgTool *(const std::string &, const std::string &, const IInterface *)>
 
- 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...
 
void const * i_cast (const InterfaceID &riid) const override
 
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 IInterfaceparent () 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 (std::string type, std::string name, const IInterface *parent)
 Standard Constructor. More...
 
SmartIF< ISvcLocator > & serviceLocator () const override
 Retrieve pointer to service locator. More...
 
ISvcLocatorsvcLoc () const
 shortcut for the method service locator More...
 
IDataProviderSvcevtSvc () const
 accessor to event service service More...
 
IToolSvctoolSvc () const
 The standard ToolSvc service, Return a pointer to the service if present. More...
 
SmartIF< IServiceservice (std::string_view 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 (std::string_view name, const bool createIf=true, const bool quiet=false) const
 
template<class T >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none")
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, bool createIf=true)
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, const std::string &toolTypeAndName, bool createIf=true)
 
template<class T >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none")
 
template<class T >
void addToolsArray (ToolHandleArray< T > &hndlArr)
 
void acceptDHVisitor (IDataHandleVisitor *) const override
 
void registerTool (IAlgTool *tool) const
 
void deregisterTool (IAlgTool *tool) const
 
const std::vector< IAlgTool * > & tools () const
 
IAuditorSvcauditorSvc () const
 Access the auditor service. More...
 
IMonitorSvcmonitorSvc () 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 DataObjIDCollextraInputDeps () const override
 
virtual const DataObjIDCollextraOutputDeps () const override
 
void declare (Gaudi::DataHandle &handle) override
 
void renounce (Gaudi::DataHandle &handle) override
 
bool renounceInput (const DataObjID &id) override
 
const DataObjIDCollinputDataObjs () const override
 
const DataObjIDColloutputDataObjs () 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 const * 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...
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
 requires (!Gaudi::Details::is_gaudi_property_v< TYPE >) Gaudi
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override
 set the property from another property with a different name More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property. More...
 
virtual StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0
 Set the property from a property with a different name. More...
 
virtual StatusCode setProperty (const std::string &s)=0
 Set the property by string. More...
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals. More...
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string. More...
 
StatusCode setPropertyRepr (const std::string &n, const std::string &r) override
 set the property from name and value string representation More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const override
 get the property by name More...
 
StatusCode getProperty (std::string_view n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (std::string_view name) const override
 Return true if we have a property with the given name. More...
 
Gaudi::Details::PropertyBaseproperty (std::string_view name) const
 \fixme property and bindPropertiesTo should be protected More...
 
void bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc)
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
- Public Member Functions inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 

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 CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Protected Attributes

std::unique_ptr< IDataHandleVisitorm_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
 

Private Attributes

friend ToolSvc
 
std::string m_type
 AlgTool type (concrete class name) More...
 
const std::string m_name
 AlgTool full name. More...
 
const IInterfacem_parent = nullptr
 AlgTool parent. More...
 
SmartIF< ISvcLocatorm_svcLocator
 Pointer to Service Locator service. More...
 
SmartIF< IDataProviderSvcm_evtSvc
 Event data service. More...
 
SmartIF< IToolSvcm_ptoolSvc
 Tool service. More...
 
SmartIF< IMonitorSvcm_pMonitorSvc
 Online Monitoring Service. More...
 
SmartIF< IAuditorSvcm_pAuditorSvc
 Auditor Service. More...
 
InterfaceList m_interfaceList
 Interface list. More...
 
Gaudi::Property< int > m_outputLevel
 
Gaudi::Property< std::string > m_monitorSvcName
 
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::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
 flag indicating whether ToolHandle tools have been added to m_tools More...
 
Gaudi::StateMachine::State m_targetState = Gaudi::StateMachine::CONFIGURED
 state of the Tool More...
 

Friends

class ToolVisitor
 

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 53 of file AlgTool.h.

Member Typedef Documentation

◆ Factory

using AlgTool::Factory = Gaudi::PluginService::Factory<IAlgTool*( const std::string&, const std::string&, const IInterface* )>

Definition at line 60 of file AlgTool.h.

◆ InterfaceList

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

Definition at line 262 of file AlgTool.h.

Constructor & Destructor Documentation

◆ AlgTool()

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

Standard Constructor.

Parameters
typethe concrete class of the sub-algtool
namethe full name of the concrete sub-algtool
parentthe parent of the concrete sub-algtool

Definition at line 95 of file AlgTool.cpp.

96  : m_type( std::move( type ) ), m_name( std::move( name ) ), m_parent( parent ) {
97  addRef(); // Initial count set to 1
98 
99  IInterface* _p = const_cast<IInterface*>( parent );
100 
101  if ( Gaudi::Algorithm* _alg = dynamic_cast<Gaudi::Algorithm*>( _p ) ) {
102  m_svcLocator = _alg->serviceLocator();
103  } else if ( Service* _svc = dynamic_cast<Service*>( _p ) ) {
104  m_svcLocator = _svc->serviceLocator();
105  } else if ( AlgTool* _too = dynamic_cast<AlgTool*>( _p ) ) {
106  m_svcLocator = _too->serviceLocator();
107  } else if ( Gaudi::Auditor* _aud = dynamic_cast<Gaudi::Auditor*>( _p ) ) {
108  m_svcLocator = _aud->serviceLocator();
109  } else {
110  throw GaudiException( "Failure to create tool '" + m_type + "/" + m_name + "': illegal parent type '" +
111  System::typeinfoName( typeid( *_p ) ) + "'",
112  "AlgTool", StatusCode::FAILURE );
113  }
114 
115  // inherit output level from parent
116  // get the "OutputLevel" property from parent
117  if ( SmartIF<IProperty> pprop( _p ); pprop && pprop->hasProperty( "OutputLevel" ) ) {
118  m_outputLevel.assign( pprop->getProperty( "OutputLevel" ) );
119  }
120 
121  // Auditor monitoring properties
122  // Initialize the default value from ApplicationMgr AuditAlgorithms
123  Gaudi::Property<bool> audit( "AuditTools", false );
124  // note that here we need that the service locator is already defined
125  if ( auto appMgr = serviceLocator()->service<IProperty>( "ApplicationMgr" ) ) {
126  appMgr->getProperty( &audit ).ignore();
127  }
128 
129  m_auditorInitialize = audit;
130  m_auditorStart = audit;
131  m_auditorStop = audit;
132  m_auditorFinalize = audit;
133  m_auditorReinitialize = audit;
134  m_auditorRestart = audit;
135 }

◆ ~AlgTool()

AlgTool::~AlgTool ( )
override

Definition at line 298 of file AlgTool.cpp.

298  {
299  if ( m_pMonitorSvc ) { m_pMonitorSvc->undeclareAll( this ); }
300 }

Member Function Documentation

◆ acceptDHVisitor()

void AlgTool::acceptDHVisitor ( IDataHandleVisitor vis) const
override

Definition at line 368 of file AlgTool.cpp.

368  {
369  vis->visit( this );
370 
371  for ( auto tool : tools() ) vis->visit( dynamic_cast<AlgTool*>( tool ) );
372 }

◆ addToolsArray()

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

Definition at line 180 of file AlgTool.h.

180  {
181  m_toolHandleArrays.push_back( &hndlArr );
182  }

◆ auditorSvc()

IAuditorSvc * AlgTool::auditorSvc ( ) const

Access the auditor service.

Definition at line 360 of file AlgTool.cpp.

360  {
361  if ( !m_pAuditorSvc ) {
362  m_pAuditorSvc = service( "AuditorSvc", true );
363  if ( !m_pAuditorSvc ) { throw GaudiException( "Service [AuditorSvc] not found", name(), StatusCode::FAILURE ); }
364  }
365  return m_pAuditorSvc.get();
366 }

◆ configure()

StatusCode AlgTool::configure ( )
inlineoverride

Definition at line 76 of file AlgTool.h.

76 { return StatusCode::SUCCESS; }

◆ declareInfo() [1/2]

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
nameMonitoring information name known to the external system
formatFormat information
varMonitoring Listener address
sizeMonitoring Listener address size
descTextual description of the information being monitored

Definition at line 252 of file AlgTool.h.

253  {
254  IMonitorSvc* mS = monitorSvc();
255  if ( mS ) mS->declareInfo( name, format, var, size, desc, this );
256  }

◆ declareInfo() [2/2]

template<class T >
void AlgTool::declareInfo ( const std::string &  name,
const T &  var,
const std::string &  desc 
) const
inline

Declare monitoring information.

Parameters
nameMonitoring information name known to the external system
varMonitoring Listener address (the item to monitor...)
descTextual description of the information being monitored

Definition at line 240 of file AlgTool.h.

240  {
241  IMonitorSvc* mS = monitorSvc();
242  if ( mS ) mS->declareInfo( name, var, desc, this );
243  }

◆ declareInterface()

template<typename I >
void AlgTool::declareInterface ( I *  i)
inlineprotected

Definition at line 137 of file AlgTool.h.

137  {
138  m_interfaceList.emplace_back( I::interfaceID(), i );
139  }

◆ declareProperty() [1/2]

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

Definition at line 145 of file AlgTool.h.

146  {
147  this->declareTool( hndl, hndl.typeAndName() ).ignore();
148  return PropertyHolderImpl::declareProperty( name, hndl, doc );
149  }

◆ declareProperty() [2/2]

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

Definition at line 173 of file AlgTool.h.

174  {
175  addToolsArray( hndlArr );
176  return PropertyHolderImpl::declareProperty( name, hndlArr, doc );
177  }

◆ declareTool() [1/2]

template<class T >
StatusCode AlgTool::declareTool ( ToolHandle< T > &  handle,
bool  createIf = true 
)
inline

Definition at line 152 of file AlgTool.h.

152  {
153  return this->declareTool( handle, handle.typeAndName(), createIf );
154  }

◆ declareTool() [2/2]

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

Definition at line 157 of file AlgTool.h.

157  {
158 
159  StatusCode sc = handle.initialize( toolTypeAndName, handle.isPublic() ? nullptr : this, createIf );
160  if ( !sc ) {
161  throw GaudiException{ std::string{ "Cannot create handle for " } + ( handle.isPublic() ? "public" : "private" ) +
162  " tool " + toolTypeAndName,
163  name(), sc };
164  }
165 
166  m_toolHandles.push_back( &handle );
167 
168  return sc;
169  }

◆ deregisterTool()

void AlgTool::deregisterTool ( IAlgTool tool) const
inline

Definition at line 193 of file AlgTool.h.

193  {
194  auto it = std::find( m_tools.begin(), m_tools.end(), tool );
195  if ( it != m_tools.end() ) {
196  if ( msgLevel( MSG::DEBUG ) ) debug() << "De-Registering tool " << tool->name() << endmsg;
197  m_tools.erase( it );
198  } else {
199  if ( msgLevel( MSG::DEBUG ) ) debug() << "Could not de-register tool " << tool->name() << endmsg;
200  }
201  }

◆ evtSvc()

IDataProviderSvc * AlgTool::evtSvc ( ) const

accessor to event service service

Returns
pointer to detector service

Definition at line 80 of file AlgTool.cpp.

80  {
81  if ( !m_evtSvc ) {
82  m_evtSvc = service( "EventDataSvc", true );
83  if ( !m_evtSvc ) { throw GaudiException( "Service [EventDataSvc] not found", name(), StatusCode::FAILURE ); }
84  }
85  return m_evtSvc.get();
86 }

◆ finalize()

StatusCode AlgTool::finalize ( )
override

Definition at line 225 of file AlgTool.cpp.

225  {
226  // For the time being there is nothing to be done here.
227  return StatusCode::SUCCESS;
228 }

◆ FSMState()

Gaudi::StateMachine::State AlgTool::FSMState ( ) const
inlineoverride

Definition at line 84 of file AlgTool.h.

84 { return m_state; }

◆ i_cast()

void const * AlgTool::i_cast ( const InterfaceID riid) const
override

Definition at line 61 of file AlgTool.cpp.

61  {
62  if ( auto output = base_class::i_cast( riid ) ) { return output; }
63  if ( auto i =
65  [&]( const std::pair<InterfaceID, void*>& item ) { return item.first.versionMatch( riid ); } );
66  i != std::end( m_interfaceList ) ) {
67  return i->second;
68  }
69  return nullptr;
70 }

◆ initialize()

StatusCode AlgTool::initialize ( )
override

Definition at line 173 of file AlgTool.cpp.

173  {
174  // For the time being there is nothing to be done here.
175  // Setting the properties is done by the ToolSvc calling setProperties()
176  // explicitly.
177  return StatusCode::SUCCESS;
178 }

◆ initToolHandles()

void AlgTool::initToolHandles ( ) const
private

Definition at line 302 of file AlgTool.cpp.

302  {
303  auto init_one = [&]( BaseToolHandle* th ) {
304  if ( !th->isEnabled() ) {
305  if ( msgLevel( MSG::DEBUG ) && !th->typeAndName().empty() )
306  debug() << "ToolHandle " << th->typeAndName() << " not used" << endmsg;
307  return;
308  }
309  if ( !th->get() ) {
310  auto sc = th->retrieve();
311  if ( sc.isFailure() ) {
312  throw GaudiException( "Failed to retrieve tool " + th->typeAndName(), this->name(), StatusCode::FAILURE );
313  }
314  }
315  auto* tool = th->get();
316  if ( msgLevel( MSG::DEBUG ) )
317  debug() << "Adding " << ( th->isPublic() ? "public" : "private" ) << " ToolHandle tool " << tool->name() << " ("
318  << tool->type() << ")" << endmsg;
319  m_tools.push_back( tool );
320  };
321 
322  for ( auto thArr : m_toolHandleArrays ) {
323  if ( msgLevel( MSG::DEBUG ) )
324  debug() << "Registering all Tools in ToolHandleArray " << thArr->propertyName() << endmsg;
325  // Iterate over its tools:
326  for ( auto toolHandle : thArr->getBaseArray() ) {
327  // Try to cast it into a BaseToolHandle pointer:
328  BaseToolHandle* bth = dynamic_cast<BaseToolHandle*>( toolHandle );
329  if ( bth ) {
330  init_one( bth );
331  } else {
332  error() << "Error retrieving Tool " << toolHandle->typeAndName() << " in ToolHandleArray "
333  << thArr->propertyName() << ". Not registered" << endmsg;
334  }
335  }
336  }
337 
338  for ( BaseToolHandle* th : m_toolHandles ) init_one( th );
339 
340  m_toolHandlesInit = true;
341 }

◆ monitorSvc()

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
NULLNo monitor service is present
non-NULLA monitor service is present and available to be used

Definition at line 228 of file AlgTool.h.

228  {
229  // If not already located try to locate it without forcing a creation
230  if ( !m_pMonitorSvc ) m_pMonitorSvc = service( m_monitorSvcName, false, true );
231  return m_pMonitorSvc.get();
232  }

◆ name()

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

Retrieve full identifying name of the concrete tool object.

Definition at line 72 of file AlgTool.cpp.

72 { return m_name; }

◆ parent()

const IInterface * AlgTool::parent ( ) const
override

Retrieve parent of the sub-algtool.

Definition at line 76 of file AlgTool.cpp.

76 { return m_parent; }

◆ queryInterface()

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

Query for a given interface.

Definition at line 46 of file AlgTool.cpp.

46  {
47  if ( !ppvi ) { return StatusCode::FAILURE; }
48  StatusCode sc = base_class::queryInterface( riid, ppvi );
49  if ( sc.isSuccess() ) return sc;
50  auto i = std::find_if( std::begin( m_interfaceList ), std::end( m_interfaceList ),
51  [&]( const std::pair<InterfaceID, void*>& item ) { return item.first.versionMatch( riid ); } );
52  if ( i == std::end( m_interfaceList ) ) {
53  *ppvi = nullptr;
54  return Status::NO_INTERFACE;
55  }
56  *ppvi = i->second;
57  addRef();
58  return StatusCode::SUCCESS;
59 }

◆ registerTool()

void AlgTool::registerTool ( IAlgTool tool) const
inline

Definition at line 188 of file AlgTool.h.

188  {
189  if ( msgLevel( MSG::DEBUG ) ) debug() << "Registering tool " << tool->name() << endmsg;
190  m_tools.push_back( tool );
191  }

◆ reinitialize()

StatusCode AlgTool::reinitialize ( )
override

Definition at line 246 of file AlgTool.cpp.

246  {
247  /* @TODO
248  * MCl 2008-10-23: the implementation of reinitialize as finalize+initialize
249  * is causing too many problems
250  *
251  // Default implementation is finalize+initialize
252  StatusCode sc = finalize();
253  if (sc.isFailure()) {
254  error() << "reinitialize(): cannot be finalized" << endmsg;
255  return sc;
256  }
257  sc = initialize();
258  if (sc.isFailure()) {
259  error() << "reinitialize(): cannot be initialized" << endmsg;
260  return sc;
261  }
262  */
263  return StatusCode::SUCCESS;
264 }

◆ restart()

StatusCode AlgTool::restart ( )
override

Definition at line 283 of file AlgTool.cpp.

283  {
284  // Default implementation is stop+start
285  StatusCode sc = stop();
286  if ( sc.isFailure() ) {
287  error() << "restart(): cannot be stopped" << endmsg;
288  return sc;
289  }
290  sc = start();
291  if ( sc.isFailure() ) {
292  error() << "restart(): cannot be started" << endmsg;
293  return sc;
294  }
295  return StatusCode::SUCCESS;
296 }

◆ service() [1/2]

SmartIF< IService > AlgTool::service ( std::string_view  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 355 of file AlgTool.cpp.

355  {
356  const ServiceLocatorHelper helper( *serviceLocator(), *this );
357  return helper.service( name, quiet, createIf );
358 }

◆ service() [2/2]

template<typename T >
SmartIF<T> AlgTool::service ( std::string_view  name,
const bool  createIf = true,
const bool  quiet = false 
) const
inline

Definition at line 131 of file AlgTool.h.

131  {
132  return SmartIF<T>( service( name, createIf, quiet ) );
133  }

◆ serviceLocator()

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

Retrieve pointer to service locator.

Definition at line 78 of file AlgTool.cpp.

78 { return m_svcLocator; }

◆ start()

StatusCode AlgTool::start ( )
override

Definition at line 192 of file AlgTool.cpp.

192  {
193  // For the time being there is nothing to be done here.
194  return StatusCode::SUCCESS;
195 }

◆ stop()

StatusCode AlgTool::stop ( )
override

Definition at line 209 of file AlgTool.cpp.

209  {
210  // For the time being there is nothing to be done here.
211  return StatusCode::SUCCESS;
212 }

◆ svcLoc()

ISvcLocator* AlgTool::svcLoc ( ) const
inline

shortcut for the method service locator

Definition at line 117 of file AlgTool.h.

117 { return serviceLocator(); }

◆ sysFinalize()

StatusCode AlgTool::sysFinalize ( )
override

Finalize AlgTool.

Definition at line 214 of file AlgTool.cpp.

214  {
215  return attempt( *this, "sysFinalize", [&]() {
218  // check if we want to audit the initialize
220  StatusCode sc = finalize();
221  if ( sc.isSuccess() ) m_state = m_targetState;
222  return sc;
223  } );
224 }

◆ sysInitialize()

StatusCode AlgTool::sysInitialize ( )
override

Initialize AlgTool.

Definition at line 137 of file AlgTool.cpp.

137  {
138  return attempt( *this, "sysInitialize", [&]() {
141  // check if we want to audit the initialize
143  StatusCode sc = initialize();
144  if ( !sc ) return sc;
145 
148 
149  // check for explicit circular data dependencies in declared handles
151  for ( auto& h : outputHandles() ) {
152  if ( !h->objKey().empty() ) out.emplace( h->fullKey() );
153  }
154  for ( auto& h : inputHandles() ) {
155  if ( !h->objKey().empty() && out.find( h->fullKey() ) != out.end() ) {
156  error() << "Explicit circular data dependency found for id " << h->fullKey() << endmsg;
157  sc = StatusCode::FAILURE;
158  }
159  }
160 
161  if ( !sc ) return sc;
162 
163  // visit all sub-tools, build full set
165  acceptDHVisitor( &avis );
166 
167  // initialize handles
168  initDataHandleHolder(); // this should 'freeze' the handle configuration.
169 
170  return sc;
171  } );
172 }

◆ sysReinitialize()

StatusCode AlgTool::sysReinitialize ( )
override

Initialize AlgTool.

Definition at line 230 of file AlgTool.cpp.

230  {
231 
232  // Check that the current status is the correct one.
234  error() << "sysReinitialize(): cannot reinitialize tool not initialized" << endmsg;
235  return StatusCode::FAILURE;
236  }
237 
238  return attempt( *this, "SysReinitialize()", [&]() {
240  // check if we want to audit the initialize
242  return reinitialize();
243  } );
244 }

◆ sysRestart()

StatusCode AlgTool::sysRestart ( )
override

Start AlgTool.

Definition at line 266 of file AlgTool.cpp.

266  {
267 
268  // Check that the current status is the correct one.
270  error() << "sysRestart(): cannot reinitialize tool not started" << endmsg;
271  return StatusCode::FAILURE;
272  }
273 
274  return attempt( *this, "sysRestart", [&]() {
277  // check if we want to audit the initialize
279  return restart();
280  } );
281 }

◆ sysStart()

StatusCode AlgTool::sysStart ( )
override

Start AlgTool.

Definition at line 180 of file AlgTool.cpp.

180  {
181  return attempt( *this, "sysStart", [&]() {
184  // check if we want to audit the initialize
186  StatusCode sc = start();
187  if ( sc.isSuccess() ) m_state = m_targetState;
188  return sc;
189  } );
190 }

◆ sysStop()

StatusCode AlgTool::sysStop ( )
override

Stop AlgTool.

Definition at line 197 of file AlgTool.cpp.

197  {
198  return attempt( *this, "sysStop", [&]() {
201  // check if we want to audit the initialize
203  StatusCode sc = stop();
204  if ( sc.isSuccess() ) m_state = m_targetState;
205  return sc;
206  } );
207 }

◆ targetFSMState()

Gaudi::StateMachine::State AlgTool::targetFSMState ( ) const
inlineoverride

Definition at line 85 of file AlgTool.h.

85 { return m_targetState; }

◆ terminate()

StatusCode AlgTool::terminate ( )
inlineoverride

Definition at line 81 of file AlgTool.h.

81 { return StatusCode::SUCCESS; }

◆ tools() [1/2]

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

Definition at line 349 of file AlgTool.cpp.

349  {
351 
352  return m_tools;
353 }

◆ tools() [2/2]

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

Definition at line 343 of file AlgTool.cpp.

343  {
345 
346  return m_tools;
347 }

◆ toolSvc()

IToolSvc * AlgTool::toolSvc ( ) const

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

Definition at line 87 of file AlgTool.cpp.

87  {
88  if ( !m_ptoolSvc ) {
89  m_ptoolSvc = service( "ToolSvc", true );
90  if ( !m_ptoolSvc ) { throw GaudiException( "Service [ToolSvc] not found", name(), StatusCode::FAILURE ); }
91  }
92  return m_ptoolSvc.get();
93 }

◆ type()

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

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

Definition at line 74 of file AlgTool.cpp.

74 { return m_type; }

Friends And Related Function Documentation

◆ ToolVisitor

friend class ToolVisitor
friend

Definition at line 57 of file AlgTool.h.

Member Data Documentation

◆ m_auditorFinalize

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

Definition at line 289 of file AlgTool.h.

◆ m_auditorInitialize

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

Definition at line 286 of file AlgTool.h.

◆ m_auditorReinitialize

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

Definition at line 290 of file AlgTool.h.

◆ m_auditorRestart

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

Definition at line 291 of file AlgTool.h.

◆ m_auditorStart

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

Definition at line 287 of file AlgTool.h.

◆ m_auditorStop

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

Definition at line 288 of file AlgTool.h.

◆ m_evtSvc

SmartIF<IDataProviderSvc> AlgTool::m_evtSvc
mutableprivate

Event data service.

Definition at line 269 of file AlgTool.h.

◆ m_interfaceList

InterfaceList AlgTool::m_interfaceList
private

Interface list.

Definition at line 274 of file AlgTool.h.

◆ m_monitorSvcName

Gaudi::Property<std::string> AlgTool::m_monitorSvcName
private
Initial value:
{ this, "MonitorService", "MonitorSvc",
"name to use for Monitor Service" }

Definition at line 283 of file AlgTool.h.

◆ m_name

const std::string AlgTool::m_name
private

AlgTool full name.

Definition at line 265 of file AlgTool.h.

◆ m_outputLevel

Gaudi::Property<int> AlgTool::m_outputLevel
private
Initial value:
{
this, "OutputLevel", setUpMessaging(),
"output level" }

Definition at line 278 of file AlgTool.h.

◆ m_parent

const IInterface* AlgTool::m_parent = nullptr
private

AlgTool parent.

Definition at line 266 of file AlgTool.h.

◆ m_pAuditorSvc

SmartIF<IAuditorSvc> AlgTool::m_pAuditorSvc
mutableprivate

Auditor Service.

Definition at line 272 of file AlgTool.h.

◆ m_pMonitorSvc

SmartIF<IMonitorSvc> AlgTool::m_pMonitorSvc
mutableprivate

Online Monitoring Service.

Definition at line 271 of file AlgTool.h.

◆ m_ptoolSvc

SmartIF<IToolSvc> AlgTool::m_ptoolSvc
mutableprivate

Tool service.

Definition at line 270 of file AlgTool.h.

◆ m_state

flag indicating whether ToolHandle tools have been added to m_tools

state of the Tool

Definition at line 299 of file AlgTool.h.

◆ m_svcLocator

SmartIF<ISvcLocator> AlgTool::m_svcLocator
mutableprivate

Pointer to Service Locator service.

Definition at line 268 of file AlgTool.h.

◆ m_targetState

state of the Tool

Definition at line 300 of file AlgTool.h.

◆ m_toolHandleArrays

std::vector<GaudiHandleArrayBase*> AlgTool::m_toolHandleArrays
mutableprivate

Definition at line 296 of file AlgTool.h.

◆ m_toolHandles

std::vector<BaseToolHandle*> AlgTool::m_toolHandles
mutableprivate

Definition at line 295 of file AlgTool.h.

◆ m_toolHandlesInit

bool AlgTool::m_toolHandlesInit = false
mutableprivate

Definition at line 297 of file AlgTool.h.

◆ m_tools

std::vector<IAlgTool*> AlgTool::m_tools
mutableprivate

Definition at line 294 of file AlgTool.h.

◆ m_type

std::string AlgTool::m_type
private

AlgTool type (concrete class name)

Definition at line 264 of file AlgTool.h.

◆ m_updateDataHandles

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

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

Definition at line 209 of file AlgTool.h.

◆ ToolSvc

friend AlgTool::ToolSvc
private

Definition at line 56 of file AlgTool.h.


The documentation for this class was generated from the following files:
MSG::DEBUG
@ DEBUG
Definition: IMessageSvc.h:22
Gaudi::Details::PropertyBase
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
Definition: PropertyBase.h:34
AlgTool::m_auditorFinalize
Gaudi::Property< bool > m_auditorFinalize
Definition: AlgTool.h:289
Gaudi::IAuditor::Start
static constexpr std::string Start
Definition: IAuditor.h:49
AlgTool::m_auditorRestart
Gaudi::Property< bool > m_auditorRestart
Definition: AlgTool.h:291
details::size
constexpr auto size(const T &, Args &&...) noexcept
Definition: AnyDataWrapper.h:23
AlgTool::m_pMonitorSvc
SmartIF< IMonitorSvc > m_pMonitorSvc
Online Monitoring Service.
Definition: AlgTool.h:271
AlgTool::m_toolHandles
std::vector< BaseToolHandle * > m_toolHandles
Definition: AlgTool.h:295
AlgTool::addToolsArray
void addToolsArray(ToolHandleArray< T > &hndlArr)
Definition: AlgTool.h:180
AlgTool::m_state
Gaudi::StateMachine::State m_state
flag indicating whether ToolHandle tools have been added to m_tools
Definition: AlgTool.h:299
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:314
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:209
AlgTool::m_toolHandlesInit
bool m_toolHandlesInit
Definition: AlgTool.h:297
AlgTool::m_auditorStop
Gaudi::Property< bool > m_auditorStop
Definition: AlgTool.h:288
AlgTool::m_auditorReinitialize
Gaudi::Property< bool > m_auditorReinitialize
Definition: AlgTool.h:290
AlgTool::parent
const IInterface * parent() const override
Retrieve parent of the sub-algtool.
Definition: AlgTool.cpp:76
AlgTool::declareTool
StatusCode declareTool(ToolHandle< T > &handle, bool createIf=true)
Definition: AlgTool.h:152
Gaudi::StateMachine::FINALIZE
@ FINALIZE
Definition: StateMachine.h:37
AlgTool::m_svcLocator
SmartIF< ISvcLocator > m_svcLocator
Pointer to Service Locator service.
Definition: AlgTool.h:268
AlgTool::restart
StatusCode restart() override
Definition: AlgTool.cpp:283
GaudiException
Definition: GaudiException.h:29
Gaudi::IAuditor::Finalize
static constexpr std::string Finalize
Definition: IAuditor.h:53
AlgTool::m_evtSvc
SmartIF< IDataProviderSvc > m_evtSvc
Event data service.
Definition: AlgTool.h:269
AlgTool::m_auditorInitialize
Gaudi::Property< bool > m_auditorInitialize
Definition: AlgTool.h:286
AlgTool::type
const std::string & type() const override
Retrieve type (concrete class) of the sub-algtool.
Definition: AlgTool.cpp:74
AlgTool::reinitialize
StatusCode reinitialize() override
Definition: AlgTool.cpp:246
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::outputHandles
std::vector< Gaudi::DataHandle * > outputHandles() const override
Definition: DataHandleHolderBase.h:40
AlgTool::acceptDHVisitor
void acceptDHVisitor(IDataHandleVisitor *) const override
Definition: AlgTool.cpp:368
Gaudi::Property::assign
bool assign(const Details::PropertyBase &source) override
get the value from another property
Definition: Property.h:361
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:301
AlgTool::m_tools
std::vector< IAlgTool * > m_tools
Definition: AlgTool.h:294
AlgTool::initialize
StatusCode initialize() override
Definition: AlgTool.cpp:173
gaudirun.output
output
Definition: gaudirun.py:521
AlgTool::m_targetState
Gaudi::StateMachine::State m_targetState
state of the Tool
Definition: AlgTool.h:300
IMonitorSvc
Definition: IMonitorSvc.h:32
DHHVisitor
Definition: DataHandleHolderVisitor.h:20
CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:147
AlgTool::auditorSvc
IAuditorSvc * auditorSvc() const
Access the auditor service.
Definition: AlgTool.cpp:360
AlgTool::FSMState
Gaudi::StateMachine::State FSMState() const override
Definition: AlgTool.h:84
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:72
Service
Definition: Service.h:39
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::m_outputDataObjs
DataObjIDColl m_outputDataObjs
Definition: DataHandleHolderBase.h:97
Gaudi::Guards::AuditorGuard
Definition: Guards.h:203
Gaudi::StateMachine::INITIALIZE
@ INITIALIZE
Definition: StateMachine.h:34
AlgTool::m_parent
const IInterface * m_parent
AlgTool parent.
Definition: AlgTool.h:266
AlgTool::service
SmartIF< IService > service(std::string_view name, const bool createIf=true, const bool quiet=false) const
Return a pointer to the service identified by name (or "type/name")
Definition: AlgTool.cpp:355
bug_34121.tool
tool
Definition: bug_34121.py:18
Gaudi::Utils::begin
AttribStringParser::Iterator begin(const AttribStringParser &parser)
Definition: AttribStringParser.h:135
CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >::setUpMessaging
MSG::Level setUpMessaging() const
Set up local caches.
Definition: CommonMessaging.h:173
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:78
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:93
StatusCode
Definition: StatusCode.h:64
Gaudi::IAuditor::ReStart
static constexpr std::string ReStart
Definition: IAuditor.h:50
AlgTool::monitorSvc
IMonitorSvc * monitorSvc() const
Access the monitor service.
Definition: AlgTool.h:228
IMonitorSvc::declareInfo
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
Gaudi::Algorithm
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:87
AlgSequencer.h
h
Definition: AlgSequencer.py:31
AlgTool::m_type
std::string m_type
AlgTool type (concrete class name)
Definition: AlgTool.h:264
Gaudi::IAuditor::ReInitialize
static constexpr std::string ReInitialize
Definition: IAuditor.h:48
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::m_inputDataObjs
DataObjIDColl m_inputDataObjs
Definition: DataHandleHolderBase.h:97
ServiceLocatorHelper
an helper to share the implementation of service() among the various kernel base classes
Definition: ServiceLocatorHelper.h:26
CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >::updateMsgStreamOutputLevel
void updateMsgStreamOutputLevel(int level)
Update the output level of the cached MsgStream.
Definition: CommonMessaging.h:184
AlgTool::m_ptoolSvc
SmartIF< IToolSvc > m_ptoolSvc
Tool service.
Definition: AlgTool.h:270
AlgTool::m_toolHandleArrays
std::vector< GaudiHandleArrayBase * > m_toolHandleArrays
Definition: AlgTool.h:296
SmartIF< IProperty >
format
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:99
DataObjIDColl
std::unordered_set< DataObjID, DataObjID_Hasher > DataObjIDColl
Definition: DataObjID.h:122
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:198
Gaudi::StateMachine::RUNNING
@ RUNNING
Definition: StateMachine.h:25
Gaudi::IAuditor::Stop
static constexpr std::string Stop
Definition: IAuditor.h:52
StatusCode::ignore
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
Definition: StatusCode.h:139
ToolHandleInfo::isPublic
bool isPublic() const noexcept
Definition: ToolHandle.h:49
DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >::inputHandles
std::vector< Gaudi::DataHandle * > inputHandles() const override
Definition: DataHandleHolderBase.h:37
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:19
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:129
AlgTool::m_interfaceList
InterfaceList m_interfaceList
Interface list.
Definition: AlgTool.h:274
PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Details::PropertyBase &prop)
Declare a property.
Definition: PropertyHolder.h:92
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:99
AlgTool
Definition: AlgTool.h:55
BaseToolHandle
Definition: ToolHandle.h:78
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:82
AlgTool::tools
const std::vector< IAlgTool * > & tools() const
Definition: AlgTool.cpp:343
Gaudi::StateMachine::INITIALIZED
@ INITIALIZED
Definition: StateMachine.h:24
IInterface
Definition: IInterface.h:225
Gaudi::StateMachine::START
@ START
Definition: StateMachine.h:35
AlgTool::m_name
const std::string m_name
AlgTool full name.
Definition: AlgTool.h:265
Gaudi::IAuditor::Initialize
static constexpr std::string Initialize
Definition: IAuditor.h:47
AlgTool::m_pAuditorSvc
SmartIF< IAuditorSvc > m_pAuditorSvc
Auditor Service.
Definition: AlgTool.h:272
ToolHandle::initialize
StatusCode initialize(const std::string &toolTypeAndName, const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:211
ToolHandle::typeAndName
std::string typeAndName() const override
Definition: ToolHandle.h:271
IOTest.end
end
Definition: IOTest.py:125
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:100
Gaudi::Auditor
Base class from which all concrete auditor classes should be derived.
Definition: Auditor.h:33
AlgTool::stop
StatusCode stop() override
Definition: AlgTool.cpp:209
AlgTool::m_outputLevel
Gaudi::Property< int > m_outputLevel
Definition: AlgTool.h:278
IOTest.appMgr
appMgr
Definition: IOTest.py:105
AlgTool::m_auditorStart
Gaudi::Property< bool > m_auditorStart
Definition: AlgTool.h:287
Gaudi::Property< bool >
AlgTool::start
StatusCode start() override
Definition: AlgTool.cpp:192
Gaudi::StateMachine::STOP
@ STOP
Definition: StateMachine.h:36
AlgTool::m_monitorSvcName
Gaudi::Property< std::string > m_monitorSvcName
Definition: AlgTool.h:283
IDataHandleVisitor::visit
virtual void visit(const IDataHandleHolder *)=0
AlgTool::initToolHandles
void initToolHandles() const
Definition: AlgTool.cpp:302
Gaudi::Functional::details::out
OptOut && out
Definition: details.h:196
AlgTool::finalize
StatusCode finalize() override
Definition: AlgTool.cpp:225