1 #ifndef GAUDISVC_DATAONDEMANDSVC_H
2 #define GAUDISVC_DATAONDEMANDSVC_H
13 #include "GaudiKernel/Service.h"
14 #include "GaudiKernel/IIncidentListener.h"
15 #include "GaudiKernel/ChronoEntity.h"
16 #include "GaudiKernel/StatEntity.h"
17 #include "GaudiKernel/StringKey.h"
18 #include "GaudiKernel/IDODAlgMapper.h"
19 #include "GaudiKernel/IDODNodeMapper.h"
95 typedef std::vector<std::string>
Setup;
131 , name (
std::move(n) )
133 , dataObject (
"DataObject" == name )
140 , executing ( c.executing )
141 , dataObject ( c.dataObject )
157 : name(
std::move(n)), type(
std::move(t)) {}
178 (
const std::string&
name ,
274 typedef std::map<std::string,std::string>
Map ;
281 mutable std::unique_ptr<MsgStream>
m_log ;
305 #endif // GAUDISVC_DATAONDEMANDSVC_H
void i_setNodeHandler(const std::string &name, const std::string &type)
Internal method to initialize a node handler.
Definition of the MsgStream class used to transmit messages.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
The DataOnDemandSvc listens to incidents typically triggered by the data service of the configurable ...
ChronoEntity m_timer_algs
a small helper class for implementation of ChronoStatSvc service, It also could be used as some local...
std::vector< IDODNodeMapper * > m_nodeMappers
MsgStream & stream() const
get the message stream
SmartIF< IIncidentSvc > m_incSvc
Incident service.
void handle(const Incident &incident) override
IIncidentListener interfaces overrides: incident handling.
std::vector< std::string > Setup
std::unique_ptr< MsgStream > m_log
The IAlgManager is the interface implemented by the Algorithm Factory in the Application Manager to s...
std::vector< std::string > m_algMapTools
std::string m_trapType
Trap name.
std::string m_dataSvcName
Data service name.
Setup m_nodeMapping
Mapping to nodes.
Map m_algMap
the major configuration property { 'data' : 'algorithm' }
Data provider interface definition.
StatusCode initialize() override
Inherited Service overrides: Service initialization.
SmartIF< IDataProviderSvc > m_dataSvc
Data provider reference.
ClassH clazz
the actual class
Setup m_algMapping
Mapping to algorithms.
Helper class to parse a string of format "type/name".
StatusCode setup()
Setup routine (called by (re-) initialize.
bool m_allowInitFailure
flag to allow DataOnDemand initialization to succeed even if the (pre)initialization of the algorithm...
StatusCode execHandler(const std::string &tag, Leaf &leaf)
Execute leaf handler (algorithm)
This class is used for returning status codes from appropriate routines.
void update_dump(Property &)
update handler for 'Dump' property
StatusCode setupNodeHandlers()
Initialize node handlers.
Helper class of the DataOnDemandSvc.
std::vector< std::string > m_nodeMapTools
NodeMap m_nodes
Map of "empty" objects to be placed as intermediate nodes.
void dump(const MSG::Level level, const bool mode=true) const
dump the content of DataOnDemand service
The IAlgorithm is the interface implemented by the Algorithm base class.
bool m_partialPath
Flag to allow for the creation of partial leaves.
std::vector< IDODAlgMapper * > m_algMappers
std::map< std::string, std::string > Map
Property base class allowing Property* collections to be "homogeneous".
SmartIF< IAlgManager > m_algMgr
Algorithm manager.
Node(ClassH c, bool e, std::string n)
SmartIF< IToolSvc > m_toolSvc
Data provider reference.
AlgMap m_algs
Map of algorithms to handle incidents.
Base class used to extend a class implementing other interfaces.
bool m_dump
flag to force the printout
bool m_init
flag to warm up the configuration
Leaf(std::string t, std::string n)
ChronoEntity m_timer_nodes
Base class for all Incidents (computing events).
bool dataObject
trivial object? DataObject?
DataOnDemandSvc(const std::string &name, ISvcLocator *svc)
Standard initializing service constructor.
StatusCode finalize() override
Inherited Service overrides: Service finalization.
GaudiUtils::HashMap< Gaudi::StringKey, Node > NodeMap
~DataOnDemandSvc() override=default
Standard destructor.
Map m_nodeMap
the major configuration property { 'data' : 'type' }
StatusCode setupAlgHandlers()
Initialize leaf handlers.
Helper class of the DataOnDemandSvc.
StatusCode i_setAlgHandler(const std::string &name, const Gaudi::Utils::TypeNameString &alg)
Internal method to initialize an algorithm handler.
StatusCode configureHandler(Leaf &leaf)
Configure handler for leaf.
void update_2(Property &p)
The interface implemented by the IncidentSvc service.
void update_3(Property &p)
void update_1(Property &p)
StatusCode reinitialize() override
Inherited Service overrides: Service reinitialization.
StatusCode update()
update the handlers
GaudiUtils::HashMap< Gaudi::StringKey, Leaf > AlgMap