26 template <
typename FUN>
34 }
catch (
const std::exception& Exception ) {
50 [&](
const std::pair<InterfaceID, void*>& item ) {
return item.first.versionMatch( riid ); } );
111 appMgr->getProperty( &audit ).ignore();
123 return attempt( *
this,
"sysInitialize", [&]() {
129 if ( !sc )
return sc;
137 if ( !h->objKey().empty() ) out.emplace( h->fullKey() );
140 if ( !h->objKey().empty() && out.find( h->fullKey() ) != out.end() ) {
141 error() <<
"Explicit circular data dependency found for id " << h->fullKey() <<
endmsg;
146 if ( !sc )
return sc;
166 return attempt( *
this,
"sysStart", [&]() {
183 return attempt( *
this,
"sysStop", [&]() {
200 return attempt( *
this,
"sysFinalize", [&]() {
219 error() <<
"sysReinitialize(): cannot reinitialize tool not initialized" <<
endmsg;
223 return attempt( *
this,
"SysReinitialize()", [&]() {
255 error() <<
"sysRestart(): cannot reinitialize tool not started" <<
endmsg;
259 return attempt( *
this,
"sysRestart", [&]() {
272 error() <<
"restart(): cannot be stopped" <<
endmsg;
277 error() <<
"restart(): cannot be started" <<
endmsg;
289 if ( !th->isEnabled() ) {
291 debug() <<
"ToolHandle " << th->typeAndName() <<
" not used" <<
endmsg;
295 auto sc = th->retrieve();
296 if ( sc.isFailure() ) {
300 auto* tool = th->get();
302 debug() <<
"Adding " << ( th->isPublic() ?
"public" :
"private" ) <<
" ToolHandle tool " << tool->name() <<
" ("
303 << tool->type() <<
")" <<
endmsg;
309 debug() <<
"Registering all Tools in ToolHandleArray " << thArr->propertyName() <<
endmsg;
311 for (
auto toolHandle : thArr->getBaseArray() ) {
317 error() <<
"Error retrieving Tool " << toolHandle->typeAndName() <<
" in ToolHandleArray "
318 << thArr->propertyName() <<
". Not registered" <<
endmsg;
std::unordered_set< DataObjID, DataObjID_Hasher > DataObjIDColl
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MSG::Level msgLevel() const
std::vector< Gaudi::DataHandle * > inputHandles() const override
std::vector< Gaudi::DataHandle * > outputHandles() const override
void initDataHandleHolder()
DataObjIDColl m_outputDataObjs
DataObjIDColl m_inputDataObjs
Base class from which all concrete algorithm classes should be derived.
Base class from which all concrete auditor classes should be derived.
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way.
static const std::string Stop
static const std::string Initialize
static const std::string Finalize
static const std::string Start
static const std::string ReInitialize
static const std::string ReStart
Implementation of property with value of concrete type.
Define general base for Gaudi exception.
The interface implemented by the IAuditorSvc base class.
virtual void visit(const IDataHandleHolder *)=0
Data provider interface definition.
Definition of the basic interface.
Definition of the MsgStream class used to transmit messages.
Base class for all services.
an helper to share the implementation of service() among the various kernel base classes
SmartIF< IService > service(std::string_view name, const bool quiet=false, const bool createIf=true) const
Small smart pointer class with automatic reference counting for IInterface.
This class is used for returning status codes from appropriate routines.
constexpr static const auto SUCCESS
constexpr static const auto FAILURE
void const * i_cast(const InterfaceID &tid) const override
Implementation of IInterface::i_cast.
State GAUDI_API ChangeState(const Transition transition, const State state)
Function to get the new state according to the required transition, checking if the transition is all...
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.