Go to the documentation of this file.
29 template <
typename FUN>
54 StatusCode sc = base_class::queryInterface( riid, ppvi );
60 return Status::NO_INTERFACE;
118 : m_type(
std::move(
type ) ), m_name(
std::move(
name ) ), m_parent( parent ) {
163 return attempt( *
this,
"sysInitialize", [&]() {
169 if ( !sc )
return sc;
177 if ( !
h->objKey().empty() )
out.emplace(
h->fullKey() );
180 if ( !
h->objKey().empty() &&
out.find(
h->fullKey() ) !=
out.end() ) {
181 error() <<
"Explicit circular data dependency found for id " <<
h->fullKey() <<
endmsg;
186 if ( !sc )
return sc;
211 return attempt( *
this,
"sysStart", [&]() {
233 return attempt( *
this,
"sysStop", [&]() {
255 return attempt( *
this,
"sysFinalize", [&]() {
279 error() <<
"sysReinitialize(): cannot reinitialize tool not initialized" <<
endmsg;
283 return attempt( *
this,
"SysReinitialize()", [&]() {
320 error() <<
"sysRestart(): cannot reinitialize tool not started" <<
endmsg;
324 return attempt( *
this,
"sysRestart", [&]() {
340 error() <<
"restart(): cannot be stopped" <<
endmsg;
345 error() <<
"restart(): cannot be started" <<
endmsg;
360 if ( !th->isEnabled() ) {
362 debug() <<
"ToolHandle " << th->typeAndName() <<
" not used" <<
endmsg;
366 auto sc = th->retrieve();
367 if ( sc.isFailure() ) {
371 auto*
tool = th->get();
373 debug() <<
"Adding " << ( th->isPublic() ?
"public" :
"private" ) <<
" ToolHandle tool " <<
tool->name() <<
" ("
380 debug() <<
"Registering all Tools in ToolHandleArray " << thArr->propertyName() <<
endmsg;
382 for (
auto toolHandle : thArr->getBaseArray() ) {
388 error() <<
"Error retrieving Tool " << toolHandle->typeAndName() <<
" in ToolHandleArray "
389 << thArr->propertyName() <<
". Not registered" <<
endmsg;
415 return helper.
getService( svcName, createIf, iid, ppSvc );
420 void** ppSvc )
const {
SmartIF< IService > service(std::string_view name, const bool quiet=false, const bool createIf=true) const
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
void initDataHandleHolder()
initializes all handles - called by the sysInitialize method of any descendant of this
Base class from which all concrete algorithm classes should be derived.
DataObjIDColl m_inputDataObjs
an helper to share the implementation of service() among the various kernel base classes
StatusCode getService(std::string_view name, bool createIf, const InterfaceID &iid, void **ppSvc) const
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
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
TYPE * get() const
Get interface pointer.
constexpr static const auto FAILURE
StatusCode createService(std::string_view name, const InterfaceID &iid, void **ppSvc) const
virtual void visit(const IDataHandleHolder *)=0