Go to the documentation of this file.
11 #ifndef GAUDIKERNEL_ALGTOOL_H
12 #define GAUDIKERNEL_ALGTOOL_H
62 PropertyHolder<CommonMessaging<implements<IAlgTool, IDataHandleHolder, IProperty, IStateful>>>> {
64 friend class ToolVisitor;
138 return service_i(
name, createIf, T::interfaceID(), (
void**)&svc );
145 return service_i(
type,
name, T::interfaceID(),
reinterpret_cast<void**
>( &svc ) );
149 SmartIF<IService> service( std::string_view
name,
const bool createIf =
true,
const bool quiet =
false )
const;
151 template <
typename T>
157 template <
typename I>
159 m_interfaceList.emplace_back( I::interfaceID(), i );
163 using PropertyHolderImpl::declareProperty;
168 this->declareTool( hndl, hndl.
typeAndName() ).ignore();
169 return PropertyHolderImpl::declareProperty(
name, hndl, doc );
174 return this->declareTool( handle, handle.
typeAndName(), createIf );
183 " tool " + toolTypeAndName,
187 m_toolHandles.push_back( &handle );
197 addToolsArray( hndlArr );
198 return PropertyHolderImpl::declareProperty(
name, hndlArr, doc );
203 m_toolHandleArrays.push_back( &hndlArr );
212 m_tools.push_back(
tool );
217 if ( it != m_tools.end() ) {
221 if ( msgLevel(
MSG::DEBUG ) ) debug() <<
"Could not de-register tool " <<
tool->name() <<
endmsg;
235 void initToolHandles()
const;
253 if ( !m_pMonitorSvc ) m_pMonitorSvc = service( m_monitorSvcName,
false,
true );
254 return m_pMonitorSvc.get();
302 this,
"OutputLevel", setUpMessaging(),
307 "name to use for Monitor Service" };
314 Gaudi::Property<bool> m_auditorReinitialize{
this,
"AuditReinitialize",
false,
"trigger auditor on reinitialize()" };
321 mutable bool m_toolHandlesInit =
false;
324 StatusCode service_i( std::string_view algName,
bool createIf,
const InterfaceID& iid,
void** ppSvc )
const;
325 StatusCode service_i( std::string_view svcType, std::string_view svcName,
const InterfaceID& iid,
void** ppS )
const;
331 #endif // GAUDIKERNEL_ALGTOOL_H
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
constexpr auto size(const T &, Args &&...) noexcept
DataObjectHandle.h GaudiKernel/DataObjectHandle.h.
State
Allowed states for classes implementing the state machine (ApplicationMgr, Algorithm,...
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
constexpr static const auto SUCCESS
StatusCode queryInterface(const InterfaceID &ti, void **pp) override
Implementation of IInterface::queryInterface.