#include </builds/gaudi/Gaudi/GaudiCoreSvc/src/IncidentSvc/DataOnDemandSvc.h>
|
| StatusCode | initialize () override |
| | Inherited Service overrides: Service initialization. More...
|
| |
| StatusCode | finalize () override |
| | Inherited Service overrides: Service finalization. More...
|
| |
| StatusCode | reinitialize () override |
| | Inherited Service overrides: Service reinitialization. More...
|
| |
| void | handle (const Incident &incident) override |
| | IIncidentListener interfaces overrides: incident handling. More...
|
| |
| void const * | i_cast (const InterfaceID &tid) const override |
| | Implementation of IInterface::i_cast. More...
|
| |
| StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
| | Implementation of IInterface::queryInterface. More...
|
| |
| std::vector< std::string > | getInterfaceNames () const override |
| | Implementation of IInterface::getInterfaceNames. More...
|
| |
| const std::string & | name () const override |
| | Retrieve name of the service
More...
|
| |
| StatusCode | configure () override |
| |
| StatusCode | initialize () override |
| |
| StatusCode | start () override |
| |
| StatusCode | stop () override |
| |
| StatusCode | finalize () override |
| |
| StatusCode | terminate () override |
| |
| Gaudi::StateMachine::State | FSMState () const override |
| |
| Gaudi::StateMachine::State | targetFSMState () const override |
| |
| StatusCode | reinitialize () override |
| |
| StatusCode | restart () override |
| |
| StatusCode | sysInitialize () override |
| | Initialize Service
More...
|
| |
| StatusCode | sysStart () override |
| | Initialize Service
More...
|
| |
| StatusCode | sysStop () override |
| | Initialize Service
More...
|
| |
| StatusCode | sysFinalize () override |
| | Finalize Service
More...
|
| |
| StatusCode | sysReinitialize () override |
| | Re-initialize the Service. More...
|
| |
| StatusCode | sysRestart () override |
| | Re-initialize the Service. More...
|
| |
| | Service (std::string name, ISvcLocator *svcloc) |
| | Standard Constructor
More...
|
| |
| SmartIF< ISvcLocator > & | serviceLocator () const override |
| | Retrieve pointer to service locator
More...
|
| |
| template<typename IFace = IService> |
| SmartIF< IFace > | service (const std::string &name, bool createIf=true) const |
| |
| template<class T > |
| Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none") |
| |
| template<class T > |
| StatusCode | declareTool (ToolHandle< T > &handle, bool createIf=true) |
| |
| template<class T > |
| StatusCode | declareTool (ToolHandle< T > &handle, const std::string &toolTypeAndName, bool createIf=true) |
| | Declare used tool. More...
|
| |
| template<class T > |
| Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none") |
| |
| template<class T > |
| void | addToolsArray (ToolHandleArray< T > &hndlArr) |
| |
| const std::vector< IAlgTool * > & | tools () const |
| |
| SmartIF< IAuditorSvc > & | auditorSvc () const |
| | The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
|
| |
| | PropertyHolder ()=default |
| |
| Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop) |
| | Declare a property. More...
|
| |
| Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none") |
| | Declare a PropertyBase instance setting name and documentation. More...
|
| |
| | requires (!Gaudi::Details::is_gaudi_property_v< TYPE >) Gaudi |
| | Helper to wrap a regular data member and use it as a regular property. More...
|
| |
| Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") |
| | Declare a remote property. More...
|
| |
| StatusCode | setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override |
| | set the property from another property with a different name More...
|
| |
| StatusCode | setProperty (const std::string &s) override |
| | set the property from the formatted string More...
|
| |
| StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
| | Set the property from a property. More...
|
| |
| virtual StatusCode | setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0 |
| | Set the property from a property with a different name. More...
|
| |
| virtual StatusCode | setProperty (const std::string &s)=0 |
| | Set the property by string. More...
|
| |
| StatusCode | setProperty (const std::string &name, const char *v) |
| | Special case for string literals. More...
|
| |
| StatusCode | setProperty (const std::string &name, const std::string &v) |
| | Special case for std::string. More...
|
| |
| StatusCode | setPropertyRepr (const std::string &n, const std::string &r) override |
| | set the property from name and value string representation More...
|
| |
| StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override |
| | get the property More...
|
| |
| const Gaudi::Details::PropertyBase & | getProperty (std::string_view name) const override |
| | get the property by name More...
|
| |
| StatusCode | getProperty (std::string_view n, std::string &v) const override |
| | convert the property to the string More...
|
| |
| const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override |
| | get all properties More...
|
| |
| bool | hasProperty (std::string_view name) const override |
| | Return true if we have a property with the given name. More...
|
| |
| Gaudi::Details::PropertyBase * | property (std::string_view name) const |
| | \fixme property and bindPropertiesTo should be protected More...
|
| |
| void | bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc) |
| |
| | PropertyHolder (const PropertyHolder &)=delete |
| |
| PropertyHolder & | operator= (const PropertyHolder &)=delete |
| |
| MSG::Level | msgLevel () const |
| | get the cached level (originally extracted from the embedded MsgStream) More...
|
| |
| bool | msgLevel (MSG::Level lvl) const |
| | get the output level from the embedded MsgStream More...
|
| |
|
| typedef std::map< std::string, std::string > | Map |
| |
|
| SmartIF< IIncidentSvc > | m_incSvc = nullptr |
| | Incident service. More...
|
| |
| SmartIF< IAlgManager > | m_algMgr = nullptr |
| | Algorithm manager. More...
|
| |
| SmartIF< IDataProviderSvc > | m_dataSvc = nullptr |
| | Data provider reference. More...
|
| |
| SmartIF< IToolSvc > | m_toolSvc |
| | Data provider reference. More...
|
| |
| AlgMap | m_algs |
| | Map of algorithms to handle incidents. More...
|
| |
| NodeMap | m_nodes |
| | Map of "empty" objects to be placed as intermediate nodes. More...
|
| |
| bool | m_updateRequired = true |
| |
| ChronoEntity | m_total |
| |
| unsigned long long | m_statAlg = 0 |
| |
| unsigned long long | m_statNode = 0 |
| |
| unsigned long long | m_stat = 0 |
| |
| ChronoEntity | m_timer_nodes |
| |
| ChronoEntity | m_timer_algs |
| |
| ChronoEntity | m_timer_all |
| |
| bool | m_locked_nodes = false |
| |
| bool | m_locked_algs = false |
| |
| bool | m_locked_all = false |
| |
| std::vector< IDODNodeMapper * > | m_nodeMappers |
| |
| std::vector< IDODAlgMapper * > | m_algMappers |
| |
| Gaudi::Property< std::string > | m_trapType { this, "IncidentName", "DataFault", "the type of handled Incident" } |
| |
| Gaudi::Property< std::string > | m_dataSvcName { this, "DataSvc", "EventDataSvc", "DataSvc name" } |
| |
| Gaudi::Property< bool > | m_partialPath { this, "UsePreceedingPath", true, "allow creation of partial leaves" } |
| |
| Gaudi::Property< bool > | m_dump |
| |
| Gaudi::Property< bool > | m_init { this, "PreInitialize", false, "(pre)initialize all algorithms" } |
| |
| Gaudi::Property< bool > | m_allowInitFailure |
| |
| Gaudi::Property< Setup > | m_algMapping |
| |
| Gaudi::Property< Setup > | m_nodeMapping |
| |
| Gaudi::Property< Map > | m_algMap { this, "AlgMap", {}, &DataOnDemandSvc::force_update, "mapping {'data': 'algorithm'}" } |
| |
| Gaudi::Property< Map > | m_nodeMap { this, "NodeMap", {}, &DataOnDemandSvc::force_update, "mapping {'data': 'type'}" } |
| |
| Gaudi::Property< std::string > | m_prefix { this, "Prefix", "/Event/" } |
| |
| Gaudi::Property< std::vector< std::string > > | m_nodeMapTools |
| |
| Gaudi::Property< std::vector< std::string > > | m_algMapTools |
| |
|
| Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE |
| | Service state
More...
|
| |
| Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE |
| | Service state
More...
|
| |
| Gaudi::Property< int > | m_outputLevel { this, "OutputLevel", MSG::NIL, "output level" } |
| | flag indicating whether ToolHandle tools have been added to m_tools More...
|
| |
| Gaudi::Property< bool > | m_auditorInitialize { this, "AuditInitialize", false, "trigger auditor on initialize()" } |
| |
| Gaudi::Property< bool > | m_auditorStart { this, "AuditStart", false, "trigger auditor on start()" } |
| |
| Gaudi::Property< bool > | m_auditorStop { this, "AuditStop", false, "trigger auditor on stop()" } |
| |
| Gaudi::Property< bool > | m_auditorFinalize { this, "AuditFinalize", false, "trigger auditor on finalize()" } |
| |
| Gaudi::Property< bool > | m_auditorReinitialize { this, "AuditReinitialize", false, "trigger auditor on reinitialize()" } |
| |
| Gaudi::Property< bool > | m_auditorRestart { this, "AuditRestart", false, "trigger auditor on restart()" } |
| |
| Gaudi::Property< bool > | m_autoRetrieveTools |
| |
| Gaudi::Property< bool > | m_checkToolDeps |
| |
| SmartIF< IAuditorSvc > | m_pAuditorSvc |
| | Auditor Service
More...
|
| |
The DataOnDemandSvc listens to incidents typically triggered by the data service of the configurable name "IncidentName". In the job options handlers can be declared, which allow to configure this service. Such handlers are either:
- Node handlers, if objects other than the default object type have to be instantiated. DataOnDemandSvc.Nodes = { "DATA='/Event/Rec' TYPE='DataObject'", "DATA='/Event/Rec/Muon' TYPE='DataObject'" };
- Leaf handlers (Algorithms), which get instantiated and executed on demand. DataOnDemandSvc.Algorithms = { "DATA='/Event/Rec/Muon/Digits' TYPE='MuonDigitAlg/MyMuonDigits'" }; If the algorithm name is omitted the class name will be the instance name.
The handlers only get called if the exact path matches. In the event already the partial path to any handler is missing a leaf handler may be triggered, which includes the partial paths ( DataOnDemandSvc.UsePreceedingPath = true )
2006-10-15: New options (using map-like semantics:)
{ "Phys/StdLoosePions/Particles" : "PreLoadParticles/StdLoosePions" ,
"Phys/StdLoosePions/Vertioces" : "PreLoadParticles/StdLoosePions" } ;
{ "Phys" : "DataObject" ,
"MC" : "DataObject" } ;
New treatment of preceding paths. for each registered leaf or node the all parent nodes are added into the node-map with default directory type 'DataObject'
The major properties are equipped with handlers (more or less mandatory for interactive work in python)
From now the default prefix ( "/Event/" ) could be omitted from any data-item. It will be added automatically.
- Author
- M.Frank
- Version
- 1.0
Definition at line 87 of file DataOnDemandSvc.h.
◆ AlgMap
◆ ClassH
◆ Map
◆ NodeMap
◆ Setup
◆ configureHandler()
Configure handler for leaf.
- Parameters
-
| leaf | [IN] Reference to leaf handler |
- Returns
- StatusCode indicating success or failure
Definition at line 346 of file DataOnDemandSvc.cpp.
349 l.algorithm =
m_algMgr->algorithm(
l.name,
false );
354 error() <<
"Failed to create algorithm " <<
l.type <<
"('" <<
l.name <<
"')" <<
endmsg;
355 l.algorithm =
nullptr;
360 sc =
l.algorithm->sysInitialize();
362 error() <<
"Failed to initialize algorithm " <<
l.type <<
"('" <<
l.name <<
"')" <<
endmsg;
363 l.algorithm =
nullptr;
368 sc =
l.algorithm->sysStart();
370 error() <<
"Failed to 'run' algorithm " <<
l.type <<
"('" <<
l.name <<
"')" <<
endmsg;
371 l.algorithm =
nullptr;
◆ deprecated_property()
◆ dump()
| void DataOnDemandSvc::dump |
( |
const MSG::Level |
level, |
|
|
const bool |
mode = true |
|
) |
| const |
|
protected |
dump the content of DataOnDemand service
- Parameters
-
| level | the printout level |
| mode | the printout mode |
Definition at line 553 of file DataOnDemandSvc.cpp.
556 typedef std::pair<std::string, std::string> Pair;
557 std::map<std::string, Pair> _m;
560 if ( _m.end() !=
check ) {
561 warning() <<
" The data item is activated for '" <<
check->first <<
"' as '" <<
check->second.first <<
"'"
564 const Leaf&
l =
alg.second;
565 std::string nam = (
l.name ==
l.type ?
l.type : (
l.type +
"/" +
l.name ) );
567 if ( !mode && 0 ==
l.num ) {
continue; }
571 val = ( !
l.algorithm ) ?
"F" :
"T";
573 val = std::to_string(
l.num );
576 _m[no_prefix(
alg.first,
m_prefix )] = { nam, val };
579 for (
const auto& node :
m_nodes ) {
580 auto check = _m.find( node.first );
581 if ( _m.end() !=
check ) {
582 warning() <<
" The data item is already activated for '" <<
check->first <<
"' as '" <<
check->second.first <<
"'"
585 const Node&
n = node.second;
586 std::string nam =
"'" +
n.name +
"'";
590 if ( !mode && 0 ==
n.num ) {
continue; }
593 val = ( 0 ==
n.clazz ) ?
"F" :
"T";
595 val = std::to_string(
n.num );
598 _m[no_prefix( node.first,
m_prefix )] = { nam, val };
601 if ( _m.empty() ) {
return; }
607 for (
const auto& i : _m ) {
608 n1 = std::max( n1, i.first.size() );
609 n2 = std::max( n2, i.second.first.size() );
610 n3 = std::max( n3, i.second.second.size() );
612 n1 = std::min( n1,
size_t{ 60 } );
613 n2 = std::min( n2,
size_t{ 60 } );
618 msg <<
"Data-On-Demand Actions enabled for:";
620 msg <<
"Data-On-Demand Actions has been used for:";
623 const auto header =
fmt::format(
" | {3:<{0}.{0}s} | {4:<{1}.{1}s} | {5:>{2}.{2}s} |", n1, n2, n3,
"Address",
624 "Creator", ( mode ?
"S" :
"#" ) );
629 for (
const auto& item : _m ) {
630 msg <<
fmt::format(
"\n | {3:<{0}.{0}s} | {4:<{1}.{1}s} | {5:>{2}.{2}s} |", n1, n2, n3, item.first,
631 item.second.first, item.second.second );
◆ execHandler() [1/2]
| StatusCode DataOnDemandSvc::execHandler |
( |
const std::string & |
tag, |
|
|
Leaf & |
leaf |
|
) |
| |
|
protected |
Execute leaf handler (algorithm)
- Parameters
-
| tag | [IN] Path to requested leaf |
| leaf | [IN] Reference to leaf handler |
- Returns
- StatusCode indicating success or failure
Definition at line 523 of file DataOnDemandSvc.cpp.
528 if ( !
l.algorithm ) {
531 error() <<
"Failed to configure handler for: " <<
l.name <<
"[" <<
l.type <<
"] " << tag <<
endmsg;
538 Protection p(
l.executing );
546 error() <<
"Failed to execute the algorithm:" <<
l.algorithm->name() <<
" for location:" << tag <<
endmsg;
◆ execHandler() [2/2]
| StatusCode DataOnDemandSvc::execHandler |
( |
const std::string & |
tag, |
|
|
Node & |
node |
|
) |
| |
|
protected |
Execute node handler (simple object creation using seal reflection)
- Parameters
-
| tag | [IN] Path to requested leaf |
| node | [IN] Reference to node handler |
- Returns
- StatusCode indicating success or failure
Definition at line 486 of file DataOnDemandSvc.cpp.
492 Protection p(
n.executing );
494 std::unique_ptr<DataObject> object;
496 if (
n.dataObject ) {
500 if ( !
n.clazz ) {
n.clazz = TClass::GetClass(
n.name.c_str() ); }
502 error() <<
"Failed to get dictionary for class '" <<
n.name <<
"' for location:" << tag <<
endmsg;
506 object.reset(
reinterpret_cast<DataObject*
>(
n.clazz->New() ) );
509 error() <<
"Failed to create an object of type:" <<
n.clazz->GetName() <<
" for location:" << tag <<
endmsg;
516 error() <<
"Failed to register an object of type:" <<
n.name <<
" at location:" << tag <<
endmsg;
◆ finalize()
◆ force_update()
◆ handle()
| void DataOnDemandSvc::handle |
( |
const Incident & |
incident | ) |
|
|
override |
IIncidentListener interfaces overrides: incident handling.
Definition at line 425 of file DataOnDemandSvc.cpp.
433 if ( !inc ) {
return; }
440 verbose() <<
"Incident: [" << incident.
type() <<
"] "
441 <<
" = " << incident.
source() <<
" Location:" << inc->tag() <<
endmsg;
465 std::string node = finder.node();
466 if ( isGood( node ) ) {
476 if ( isGood(
alg ) ) {
◆ i_setAlgHandler()
Internal method to initialize an algorithm handler.
Definition at line 98 of file DataOnDemandSvc.cpp.
99 Leaf leaf(
alg.type(),
alg.name() );
106 leaf = Leaf(
alg.type(),
alg.name() );
◆ i_setNodeHandler()
| void DataOnDemandSvc::i_setNodeHandler |
( |
const std::string & |
name, |
|
|
const std::string & |
type |
|
) |
| |
|
protected |
Internal method to initialize a node handler.
Definition at line 92 of file DataOnDemandSvc.cpp.
94 if ( !cl ) { warning() <<
"Failed to access dictionary class for " <<
name <<
" of type:" <<
type <<
endmsg; }
◆ initialize()
◆ reinitialize()
◆ setup()
Setup routine (called by (re-) initialize.
Definition at line 250 of file DataOnDemandSvc.cpp.
253 error() <<
"Failed to retrieve the IAlgManager interface." <<
endmsg;
259 error() <<
"Failed to retrieve Incident service." <<
endmsg;
266 error() <<
"Failed to retrieve the data provider interface of " <<
m_dataSvcName <<
endmsg;
274 error() <<
"Failed to retrieve ToolSvc" <<
endmsg;
◆ setupAlgHandlers()
Initialize leaf handlers.
Definition at line 320 of file DataOnDemandSvc.cpp.
321 std::string typ, tag;
325 for (
auto attrib : Parser(
alg ) ) {
326 switch ( ::
toupper( attrib.tag[0] ) ) {
328 tag = std::move( attrib.value );
331 typ = std::move( attrib.value );
337 warning() <<
"The obsolete property 'Algorithms' redefines the action for '" + tag +
"' to be '" + item.type() +
338 "/" + item.name() +
"'"
◆ setupNodeHandlers()
Initialize node handlers.
Definition at line 294 of file DataOnDemandSvc.cpp.
295 std::string nam, typ, tag;
300 for (
auto attrib : Parser( node ) ) {
301 switch ( ::
toupper( attrib.tag[0] ) ) {
303 tag = std::move( attrib.value );
306 nam = std::move( attrib.value );
311 warning() <<
"The obsolete property 'Nodes' redefines the action for '" + tag +
"' to be '" + nam +
"'" <<
endmsg;
◆ update()
update the handlers
Definition at line 115 of file DataOnDemandSvc.cpp.
121 error() <<
"Failed to setup old \"Nodes\"" <<
endmsg;
127 error() <<
"Failed to setup old \"Algorithms\"" <<
endmsg;
135 std::set<std::string> dirs;
139 auto _e = dirs.find(
"/Event" );
140 if ( dirs.end() != _e ) { dirs.erase( _e ); }
142 for (
const auto& dir : dirs ) {
◆ m_algMap
| Gaudi::Property<Map> DataOnDemandSvc::m_algMap { this, "AlgMap", {}, &DataOnDemandSvc::force_update, "mapping {'data': 'algorithm'}" } |
|
private |
◆ m_algMappers
◆ m_algMapping
◆ m_algMapTools
Initial value:{
this, "AlgMappingTools", {}, "list of tools of type IDODAlgMapper" }
Definition at line 253 of file DataOnDemandSvc.h.
◆ m_algMgr
◆ m_algs
| AlgMap DataOnDemandSvc::m_algs |
|
private |
◆ m_allowInitFailure
Initial value:{
this, "AllowPreInitializeFailure", false,
"allow (pre)initialization of algorithms to fail without stopping the application" }
Definition at line 236 of file DataOnDemandSvc.h.
◆ m_dataSvc
◆ m_dataSvcName
◆ m_dump
Initial value:{
this, "Dump", false,
[this]( auto& ) {
},
"dump configuration and stastics, if set to True after initialize it triggers a dump immediately" }
Definition at line 229 of file DataOnDemandSvc.h.
◆ m_incSvc
◆ m_init
◆ m_locked_algs
| bool DataOnDemandSvc::m_locked_algs = false |
|
private |
◆ m_locked_all
| bool DataOnDemandSvc::m_locked_all = false |
|
private |
◆ m_locked_nodes
| bool DataOnDemandSvc::m_locked_nodes = false |
|
private |
◆ m_nodeMap
| Gaudi::Property<Map> DataOnDemandSvc::m_nodeMap { this, "NodeMap", {}, &DataOnDemandSvc::force_update, "mapping {'data': 'type'}" } |
|
private |
◆ m_nodeMappers
◆ m_nodeMapping
◆ m_nodeMapTools
Initial value:{
this, "NodeMappingTools", {}, "list of tools of type IDODNodeMapper" }
Definition at line 251 of file DataOnDemandSvc.h.
◆ m_nodes
Map of "empty" objects to be placed as intermediate nodes.
Definition at line 206 of file DataOnDemandSvc.h.
◆ m_partialPath
| Gaudi::Property<bool> DataOnDemandSvc::m_partialPath { this, "UsePreceedingPath", true, "allow creation of partial leaves" } |
|
private |
◆ m_prefix
| Gaudi::Property<std::string> DataOnDemandSvc::m_prefix { this, "Prefix", "/Event/" } |
|
private |
◆ m_stat
| unsigned long long DataOnDemandSvc::m_stat = 0 |
|
private |
◆ m_statAlg
| unsigned long long DataOnDemandSvc::m_statAlg = 0 |
|
private |
◆ m_statNode
| unsigned long long DataOnDemandSvc::m_statNode = 0 |
|
private |
◆ m_timer_algs
◆ m_timer_all
◆ m_timer_nodes
◆ m_toolSvc
◆ m_total
◆ m_trapType
| Gaudi::Property<std::string> DataOnDemandSvc::m_trapType { this, "IncidentName", "DataFault", "the type of handled Incident" } |
|
private |
◆ m_updateRequired
| bool DataOnDemandSvc::m_updateRequired = true |
|
private |
The documentation for this class was generated from the following files:
const std::string name() const
property name
void toupper(std::string &s)
StatusCode i_setAlgHandler(const std::string &name, const Gaudi::Utils::TypeNameString &alg)
Internal method to initialize an algorithm handler.
void i_setNodeHandler(const std::string &name, const std::string &type)
Internal method to initialize a node handler.
void deprecated_property(Gaudi::Details::PropertyBase &p)
StatusCode initialize() override
const std::string & source() const
Access to the source of the incident.
Gaudi::Property< Setup > m_algMapping
Gaudi::Property< std::vector< std::string > > m_algMapTools
GAUDI_API const EventContext & currentContext()
iterator find(const key_type &key)
StatusCode configureHandler(Leaf &leaf)
Configure handler for leaf.
Gaudi::Property< bool > m_allowInitFailure
std::string documentation() const
property documentation
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
std::string type() const
property type
StatusCode setupAlgHandlers()
Initialize leaf handlers.
StatusCode setup()
Setup routine (called by (re-) initialize.
SmartIF< IDataProviderSvc > m_dataSvc
Data provider reference.
std::vector< IDODAlgMapper * > m_algMappers
SmartIF< IFace > service(const std::string &name, bool createIf=true) const
void force_update(Gaudi::Details::PropertyBase &p)
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
StatusCode finalize() override
Gaudi::StateMachine::State FSMState() const override
Interface of tools used by the DataOnDemandSvc to choose the algorithm to be run to produce the data ...
SmartIF< IAlgManager > m_algMgr
Algorithm manager.
unsigned long long m_stat
Helper class to parse a string of format "type/name".
Gaudi::Property< bool > m_partialPath
const std::string & name() const override
Retrieve name of the service
Gaudi::Property< std::string > m_trapType
std::string outputUserTime() const
print the chrono ;
SmartIF< IToolSvc > m_toolSvc
Data provider reference.
Gaudi::Property< Map > m_nodeMap
def check(causes, result)
const ValueType & value() const
StatusCode execHandler(const std::string &tag, Leaf &leaf)
Execute leaf handler (algorithm)
Gaudi::Property< std::string > m_prefix
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Gaudi::Property< bool > m_dump
unsigned long long m_statNode
GaudiUtils::HashMap< Gaudi::StringKey, Leaf > AlgMap
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
Gaudi::Property< std::vector< std::string > > m_nodeMapTools
void dump(const MSG::Level level, const bool mode=true) const
dump the content of DataOnDemand service
Gaudi::Property< Map > m_algMap
AlgMap m_algs
Map of algorithms to handle incidents.
Gaudi::Property< Setup > m_nodeMapping
constexpr static const auto SUCCESS
Gaudi::Property< std::string > m_dataSvcName
StatusCode setupNodeHandlers()
Initialize node handlers.
NodeMap m_nodes
Map of "empty" objects to be placed as intermediate nodes.
StatusCode reinitialize() override
ChronoEntity m_timer_algs
StatusCode update()
update the handlers
const std::string & type() const
Access to the incident type.
constexpr static const auto FAILURE
ChronoEntity m_timer_nodes
Parse attribute strings allowing iteration over the various attributes.
GaudiUtils::HashMap< Gaudi::StringKey, Node > NodeMap
Gaudi::Property< bool > m_init
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator
SmartIF< IIncidentSvc > m_incSvc
Incident service.
void handle(const Incident &incident) override
IIncidentListener interfaces overrides: incident handling.
Interface of tools used by the DataOnDemandSvc to choose the type of node to be created at a path.
std::vector< IDODNodeMapper * > m_nodeMappers
unsigned long long m_statAlg