Loading [MathJax]/extensions/tex2jax.js
Go to the documentation of this file.
55 PropertyHolder<CommonMessaging<implements<IAlgTool, IDataHandleHolder, IProperty, IStateful>>>> {
57 friend class ToolVisitor;
67 const std::string&
name()
const override;
70 const std::string&
type()
const override;
128 SmartIF<IService> service( std::string_view
name,
const bool createIf =
true,
const bool quiet =
false )
const;
130 template <
typename T>
136 template <
typename I>
138 m_interfaceList.emplace_back( I::interfaceID(), i );
142 using PropertyHolderImpl::declareProperty;
146 const std::string& doc =
"none" ) {
147 this->declareTool( hndl, hndl.
typeAndName() ).ignore();
148 return PropertyHolderImpl::declareProperty(
name, hndl, doc );
153 return this->declareTool( handle, handle.
typeAndName(), createIf );
161 throw GaudiException{ std::string{
"Cannot create handle for " } + ( handle.
isPublic() ?
"public" :
"private" ) +
162 " tool " + toolTypeAndName,
166 m_toolHandles.push_back( &handle );
174 const std::string& doc =
"none" ) {
175 addToolsArray( hndlArr );
176 return PropertyHolderImpl::declareProperty(
name, hndlArr, doc );
181 m_toolHandleArrays.push_back( &hndlArr );
190 m_tools.push_back(
tool );
194 auto it = std::find( m_tools.begin(), m_tools.end(),
tool );
195 if ( it != m_tools.end() ) {
199 if ( msgLevel(
MSG::DEBUG ) ) debug() <<
"Could not de-register tool " <<
tool->name() <<
endmsg;
203 const std::vector<IAlgTool*>& tools()
const;
206 std::vector<IAlgTool*>& tools();
213 void initToolHandles()
const;
230 if ( !m_pMonitorSvc ) m_pMonitorSvc = service( m_monitorSvcName,
false,
true );
231 return m_pMonitorSvc.get();
240 void declareInfo(
const std::string&
name,
const T& var,
const std::string& desc )
const {
253 const std::string& desc )
const {
279 this,
"OutputLevel", setUpMessaging(),
284 "name to use for Monitor Service" };
290 Gaudi::Property<bool> m_auditorReinitialize{
this,
"AuditReinitialize",
false,
"trigger auditor on reinitialize()" };
297 mutable bool m_toolHandlesInit =
false;
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
constexpr auto size(const T &, Args &&...) noexcept
void const * i_cast(const InterfaceID &tid) const override
Implementation of IInterface::i_cast.
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
The interface implemented by the IAuditorSvc base class.
StatusCode queryInterface(const InterfaceID &ti, void **pp) override
Implementation of IInterface::queryInterface.