1 #ifndef GAUDIKERNEL_ALGTOOL_H 2 #define GAUDIKERNEL_ALGTOOL_H 49 PropertyHolder<CommonMessaging<implements<IAlgTool, IDataHandleHolder, IProperty, IStateful>>>>
52 using Factory = Gaudi::PluginService::Factory<IAlgTool*( const std::string&, const std::string&, const IInterface* )>;
133 return service_i( name, createIf, T::interfaceID(), (
void**)&svc );
141 return service_i( type, name, T::interfaceID(), reinterpret_cast<void**>( &svc ) );
147 template <
typename T>
150 return SmartIF<T>( service( name, createIf, quiet ) );
154 template <
typename I>
157 m_interfaceList.emplace_back( I::interfaceID(), i );
167 this->declareTool( hndl, hndl.
typeAndName() ).ignore();
174 return this->declareTool( handle, handle.
typeAndName(), createIf );
184 " tool " + toolTypeAndName,
188 m_toolHandles.push_back( &handle );
199 addToolsArray( hndlArr );
206 m_toolHandleArrays.push_back( &hndlArr );
213 m_tools.push_back( tool );
218 auto it =
std::find( m_tools.begin(), m_tools.end(), tool );
219 if ( it != m_tools.end() ) {
237 void initToolHandles()
const;
240 void addUninitializedTool(
AlgTool* tool );
243 void propagateUninitializedTools(
AlgTool* tool );
262 if ( !m_pMonitorSvc ) m_pMonitorSvc = service( m_monitorSvcName,
false,
true );
263 return m_pMonitorSvc.get();
275 if ( mS ) mS->
declareInfo( name, var, desc,
this );
289 if ( mS ) mS->
declareInfo( name, format, var, size, desc,
this );
313 [
this](
auto& ) { this->updateMsgStreamOutputLevel( this->m_outputLevel ); },
317 "name to use for Monitor Service"};
331 mutable bool m_toolHandlesInit =
false;
346 #endif // GAUDIKERNEL_ALGTOOL_H
Define general base for Gaudi exception.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Implementation of property with value of concrete type.
State
Allowed states for classes implementing the state machine (ApplicationMgr, Algorithm, Service, AlgTool).
Data provider interface definition.
constexpr auto size(const C &c) noexcept(noexcept(c.size())) -> decltype(c.size())
DataObjectHandle.h GaudiKernel/DataObjectHandle.h.
StatusCode queryInterface(const InterfaceID &ti, void **pp) override
Implementation of IInterface::queryInterface.
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
This class is used for returning status codes from appropriate routines.
Gaudi::Details::PropertyBase * declareProperty(const std::string &name, TYPE &value, const std::string &doc="none")
Declare a property (templated)
Definition of the basic interface.
Common infrastructure for classes that manage data handles and other Scheduler-known data dependencie...
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
constexpr static const auto SUCCESS
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
The interface implemented by the IAuditorSvc base class.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
virtual const std::string & name() const =0
Retrieve the name of the instance.