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.