Go to the documentation of this file.
29 template <
typename FUN>
37 }
catch (
const std::exception& Exception ) {
54 StatusCode sc = base_class::queryInterface( riid, ppvi );
57 [&](
const std::pair<InterfaceID, void*>& item ) {
return item.first.versionMatch( riid ); } );
60 return Status::NO_INTERFACE;
118 : m_type(
std::move(
type ) ), m_name(
std::move(
name ) ), m_parent( parent ) {
148 appMgr->getProperty( &audit ).ignore();
162 return attempt( *
this,
"sysInitialize", [&]() {
168 if ( !sc )
return sc;
176 if ( !
h->objKey().empty() )
out.emplace(
h->fullKey() );
179 if ( !
h->objKey().empty() &&
out.find(
h->fullKey() ) !=
out.end() ) {
180 error() <<
"Explicit circular data dependency found for id " <<
h->fullKey() <<
endmsg;
185 if ( !sc )
return sc;
210 return attempt( *
this,
"sysStart", [&]() {
232 return attempt( *
this,
"sysStop", [&]() {
254 return attempt( *
this,
"sysFinalize", [&]() {
278 error() <<
"sysReinitialize(): cannot reinitialize tool not initialized" <<
endmsg;
282 return attempt( *
this,
"SysReinitialize()", [&]() {
319 error() <<
"sysRestart(): cannot reinitialize tool not started" <<
endmsg;
323 return attempt( *
this,
"sysRestart", [&]() {
339 error() <<
"restart(): cannot be stopped" <<
endmsg;
344 error() <<
"restart(): cannot be started" <<
endmsg;
359 if ( !th->isEnabled() ) {
361 debug() <<
"ToolHandle " << th->typeAndName() <<
" not used" <<
endmsg;
365 auto sc = th->retrieve();
366 if ( sc.isFailure() ) {
370 auto*
tool = th->get();
372 debug() <<
"Adding " << ( th->isPublic() ?
"public" :
"private" ) <<
" ToolHandle tool " <<
tool->name() <<
" ("
379 debug() <<
"Registering all Tools in ToolHandleArray " << thArr->propertyName() <<
endmsg;
381 for (
auto toolHandle : thArr->getBaseArray() ) {
387 error() <<
"Error retrieving Tool " << toolHandle->typeAndName() <<
" in ToolHandleArray "
388 << thArr->propertyName() <<
". Not registered" <<
endmsg;
SmartIF< IService > service(std::string_view name, const bool quiet=false, const bool createIf=true) const
static constexpr std::string Start
static constexpr std::string Finalize
std::vector< Gaudi::DataHandle * > outputHandles() const override
bool assign(const Details::PropertyBase &source) override
get the value from another property
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
DataObjIDColl m_outputDataObjs
AttribStringParser::Iterator begin(const AttribStringParser &parser)
void initDataHandleHolder()
initializes all handles - called by the sysInitialize method of any descendant of this
static constexpr std::string ReStart
Base class from which all concrete algorithm classes should be derived.
static constexpr std::string ReInitialize
DataObjIDColl m_inputDataObjs
an helper to share the implementation of service() among the various kernel base classes
std::unordered_set< DataObjID, DataObjID_Hasher > DataObjIDColl
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
static constexpr std::string Stop
std::vector< Gaudi::DataHandle * > inputHandles() const override
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...
constexpr static const auto SUCCESS
The interface implemented by the IAuditorSvc base class.
TYPE * get() const
Get interface pointer.
static constexpr std::string Initialize
constexpr static const auto FAILURE
Base class from which all concrete auditor classes should be derived.
virtual void visit(const IDataHandleHolder *)=0