1 #ifndef GAUDIKERNEL_ALGTOOL_H 2 #define GAUDIKERNEL_ALGTOOL_H 50 PropertyHolder<CommonMessaging<implements<IAlgTool, IDataHandleHolder, IProperty, IStateful>>>>
134 return service_i( name, createIf, T::interfaceID(), (
void**)&svc );
142 return service_i( type, name, T::interfaceID(), (
void**)&svc );
148 template <
typename T>
151 return SmartIF<T>( service( name, createIf, quiet ) );
155 template <
typename I>
158 m_interfaceList.emplace_back( I::interfaceID(), i );
168 this->declareTool( hndl, hndl.
typeAndName() ).ignore();
179 " tool " + toolTypeAndName,
183 m_toolHandles.push_back( &handle );
194 addToolsArray( hndlArr );
201 m_toolHandleArrays.push_back( &hndlArr );
207 void commitHandles()
override;
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;
256 if ( !m_pMonitorSvc ) m_pMonitorSvc = service( m_monitorSvcName,
false,
true );
257 return m_pMonitorSvc.get();
269 if ( mS ) mS->
declareInfo( name, var, desc,
this );
283 if ( mS ) mS->
declareInfo( name, format, var, size, desc,
this );
308 "name to use for Monitor Service"};
324 mutable bool m_toolHandlesInit =
false;
335 #ifndef GAUDI_NEW_PLUGIN_SERVICE 338 template <
typename S,
typename... Args>
341 return new T( std::forward<Args>(
args )... );
346 #define DECLARE_TOOL_FACTORY( x ) DECLARE_FACTORY_WITH_CREATOR( x, ToolFactory<x>, AlgTool::Factory ) 347 #define DECLARE_NAMESPACE_TOOL_FACTORY( n, x ) DECLARE_TOOL_FACTORY( n::x ) 352 #define DECLARE_TOOL_FACTORY( x ) DECLARE_COMPONENT( x ) 353 #define DECLARE_NAMESPACE_TOOL_FACTORY( n, x ) DECLARE_COMPONENT( n::x ) 357 #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.
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.
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
Class wrapping the signature for a factory with any number of arguments.
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.