26 template <
typename FUN>
34 }
catch (
const std::exception& Exception ) {
51 [&](
const std::pair<InterfaceID, void*>& item ) {
return item.first.versionMatch( riid ); } );
54 return Status::NO_INTERFACE;
65 [&](
const std::pair<InterfaceID, void*>& item ) {
return item.first.versionMatch( riid ); } );
126 appMgr->getProperty( &audit ).ignore();
138 return attempt( *
this,
"sysInitialize", [&]() {
144 if ( !sc )
return sc;
152 if ( !h->objKey().empty() ) out.emplace( h->fullKey() );
155 if ( !h->objKey().empty() && out.find( h->fullKey() ) != out.end() ) {
156 error() <<
"Explicit circular data dependency found for id " << h->fullKey() <<
endmsg;
161 if ( !sc )
return sc;
181 return attempt( *
this,
"sysStart", [&]() {
198 return attempt( *
this,
"sysStop", [&]() {
215 return attempt( *
this,
"sysFinalize", [&]() {
234 error() <<
"sysReinitialize(): cannot reinitialize tool not initialized" <<
endmsg;
238 return attempt( *
this,
"SysReinitialize()", [&]() {
270 error() <<
"sysRestart(): cannot reinitialize tool not started" <<
endmsg;
274 return attempt( *
this,
"sysRestart", [&]() {
287 error() <<
"restart(): cannot be stopped" <<
endmsg;
292 error() <<
"restart(): cannot be started" <<
endmsg;
304 if ( !th->isEnabled() ) {
306 debug() <<
"ToolHandle " << th->typeAndName() <<
" not used" <<
endmsg;
310 auto sc = th->retrieve();
311 if ( sc.isFailure() ) {
315 auto* tool = th->get();
317 debug() <<
"Adding " << ( th->isPublic() ?
"public" :
"private" ) <<
" ToolHandle tool " << tool->name() <<
" ("
318 << tool->type() <<
")" <<
endmsg;
324 debug() <<
"Registering all Tools in ToolHandleArray " << thArr->propertyName() <<
endmsg;
326 for (
auto toolHandle : thArr->getBaseArray() ) {
332 error() <<
"Error retrieving Tool " << toolHandle->typeAndName() <<
" in ToolHandleArray "
333 << 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.
bool assign(const Details::PropertyBase &source) override
get the value from another property
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.
StatusCode queryInterface(const InterfaceID &ti, void **pp) override
Implementation of IInterface::queryInterface.
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.