11 #ifndef GAUDIKERNEL_ALGTOOL_H 12 #define GAUDIKERNEL_ALGTOOL_H 59 PropertyHolder<CommonMessaging<implements<IAlgTool, IDataHandleHolder, IProperty, IStateful>>>> {
139 return service_i(
name, createIf, T::interfaceID(), (
void**)&svc );
146 return service_i(
type,
name, T::interfaceID(), reinterpret_cast<void**>( &svc ) );
152 template <
typename T>
158 template <
typename I>
160 m_interfaceList.emplace_back( I::interfaceID(), i );
164 using PropertyHolderImpl::declareProperty;
169 this->declareTool( hndl, hndl.
typeAndName() ).ignore();
170 return PropertyHolderImpl::declareProperty(
name, hndl, doc );
175 return this->declareTool( handle, handle.
typeAndName(), createIf );
184 " tool " + toolTypeAndName,
188 m_toolHandles.push_back( &handle );
198 addToolsArray( hndlArr );
199 return PropertyHolderImpl::declareProperty(
name, hndlArr, doc );
204 m_toolHandleArrays.push_back( &hndlArr );
213 m_tools.push_back( tool );
217 auto it =
std::find( m_tools.begin(), m_tools.end(), tool );
218 if ( it != m_tools.end() ) {
236 void initToolHandles()
const;
254 if ( !m_pMonitorSvc ) m_pMonitorSvc = service( m_monitorSvcName,
false,
true );
255 return m_pMonitorSvc.get();
303 this,
"OutputLevel", setUpMessaging(),
308 "name to use for Monitor Service"};
322 mutable bool m_toolHandlesInit =
false;
333 #endif // GAUDIKERNEL_ALGTOOL_H
constexpr auto size(const T &, Args &&...) noexcept
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.
constexpr static const auto SUCCESS
State
Allowed states for classes implementing the state machine (ApplicationMgr, Algorithm,...
Data provider interface definition.
virtual const std::string & name() const =0
Retrieve the name of the instance.
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.
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.
The interface implemented by the IAuditorSvc base class.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.