![]() |
The Gaudi Framework
master (e199b415)
|
#include </builds/gaudi/Gaudi/GaudiCoreSvc/src/IncidentSvc/DataOnDemandSvc.h>
Classes | |
struct | Leaf |
struct | Node |
struct | Protection |
Public Member Functions | |
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 * | 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<class T > | |
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const |
Access a service by name, creating it if it doesn't already exist. More... | |
template<class T > | |
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const |
template<typename IFace = IService> | |
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const |
template<class T > | |
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const |
Access a service by name and type, creating it if it doesn't already exist. More... | |
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... | |
Protected Member Functions | |
StatusCode | configureHandler (Leaf &leaf) |
Configure handler for leaf. More... | |
StatusCode | execHandler (const std::string &tag, Leaf &leaf) |
Execute leaf handler (algorithm) More... | |
StatusCode | execHandler (const std::string &tag, Node &node) |
Execute node handler (simple object creation using seal reflection) More... | |
StatusCode | setupNodeHandlers () |
Initialize node handlers. More... | |
StatusCode | setupAlgHandlers () |
Initialize leaf handlers. More... | |
StatusCode | setup () |
Setup routine (called by (re-) initialize. More... | |
void | i_setNodeHandler (const std::string &name, const std::string &type) |
Internal method to initialize a node handler. More... | |
StatusCode | i_setAlgHandler (const std::string &name, const Gaudi::Utils::TypeNameString &alg) |
Internal method to initialize an algorithm handler. More... | |
StatusCode | update () |
update the handlers More... | |
void | dump (const MSG::Level level, const bool mode=true) const |
dump the content of DataOnDemand service More... | |
![]() | |
std::vector< IAlgTool * > & | tools () |
~Service () override | |
Standard Destructor More... | |
int | outputLevel () const |
get the Service's output level More... | |
![]() | |
MSG::Level | setUpMessaging () const |
Set up local caches. More... | |
MSG::Level | resetMessaging () |
Reinitialize internal states. More... | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. More... | |
Private Types | |
typedef std::map< std::string, std::string > | Map |
Private Member Functions | |
void | force_update (Gaudi::Details::PropertyBase &p) |
void | deprecated_property (Gaudi::Details::PropertyBase &p) |
Private Attributes | |
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 |
Additional Inherited Members | |
![]() | |
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_auditInit { this, "AuditServices", false, "[[deprecated]] unused" } |
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:
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:)
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.
Definition at line 100 of file DataOnDemandSvc.h.
Definition at line 155 of file DataOnDemandSvc.h.
typedef TClass* DataOnDemandSvc::ClassH |
Definition at line 105 of file DataOnDemandSvc.h.
|
private |
Definition at line 275 of file DataOnDemandSvc.h.
Definition at line 154 of file DataOnDemandSvc.h.
typedef std::vector<std::string> DataOnDemandSvc::Setup |
Definition at line 104 of file DataOnDemandSvc.h.
|
protected |
Configure handler for leaf.
leaf | [IN] Reference to leaf handler |
Definition at line 379 of file DataOnDemandSvc.cpp.
|
inlineprivate |
Definition at line 218 of file DataOnDemandSvc.h.
|
protected |
dump the content of DataOnDemand service
level | the printout level |
mode | the printout mode |
Definition at line 601 of file DataOnDemandSvc.cpp.
|
protected |
Execute leaf handler (algorithm)
tag | [IN] Path to requested leaf |
leaf | [IN] Reference to leaf handler |
Definition at line 565 of file DataOnDemandSvc.cpp.
|
protected |
Execute node handler (simple object creation using seal reflection)
tag | [IN] Path to requested leaf |
node | [IN] Reference to node handler |
Definition at line 525 of file DataOnDemandSvc.cpp.
|
override |
Inherited Service overrides: Service finalization.
Definition at line 195 of file DataOnDemandSvc.cpp.
|
inlineprivate |
Definition at line 214 of file DataOnDemandSvc.h.
|
override |
IIncidentListener interfaces overrides: incident handling.
Definition at line 461 of file DataOnDemandSvc.cpp.
|
protected |
Internal method to initialize an algorithm handler.
Definition at line 106 of file DataOnDemandSvc.cpp.
|
protected |
Internal method to initialize a node handler.
Definition at line 100 of file DataOnDemandSvc.cpp.
|
override |
Inherited Service overrides: Service initialization.
Definition at line 175 of file DataOnDemandSvc.cpp.
|
override |
Inherited Service overrides: Service reinitialization.
re-initialization of the service
Definition at line 243 of file DataOnDemandSvc.cpp.
|
protected |
|
protected |
Initialize leaf handlers.
Definition at line 350 of file DataOnDemandSvc.cpp.
|
protected |
Initialize node handlers.
Definition at line 321 of file DataOnDemandSvc.cpp.
|
protected |
update the handlers
convert obsolete "Nodes" into new "NodeMap"
convert obsolete "Algorithms" into new "AlgMap"
add the default prefix
add the default prefix
get all directories
setup algorithms
setup nodes
Definition at line 126 of file DataOnDemandSvc.cpp.
|
private |
Definition at line 276 of file DataOnDemandSvc.h.
|
private |
Definition at line 252 of file DataOnDemandSvc.h.
|
private |
Definition at line 270 of file DataOnDemandSvc.h.
|
private |
Definition at line 283 of file DataOnDemandSvc.h.
|
private |
Algorithm manager.
Definition at line 227 of file DataOnDemandSvc.h.
|
private |
Map of algorithms to handle incidents.
Definition at line 233 of file DataOnDemandSvc.h.
|
private |
Definition at line 266 of file DataOnDemandSvc.h.
|
private |
Data provider reference.
Definition at line 229 of file DataOnDemandSvc.h.
|
private |
Definition at line 256 of file DataOnDemandSvc.h.
|
private |
Definition at line 259 of file DataOnDemandSvc.h.
|
private |
Incident service.
Definition at line 225 of file DataOnDemandSvc.h.
|
private |
Definition at line 265 of file DataOnDemandSvc.h.
|
private |
Definition at line 248 of file DataOnDemandSvc.h.
|
private |
Definition at line 249 of file DataOnDemandSvc.h.
|
private |
Definition at line 247 of file DataOnDemandSvc.h.
|
private |
Definition at line 277 of file DataOnDemandSvc.h.
|
private |
Definition at line 251 of file DataOnDemandSvc.h.
|
private |
Definition at line 272 of file DataOnDemandSvc.h.
|
private |
Definition at line 281 of file DataOnDemandSvc.h.
|
private |
Map of "empty" objects to be placed as intermediate nodes.
Definition at line 235 of file DataOnDemandSvc.h.
|
private |
Definition at line 258 of file DataOnDemandSvc.h.
|
private |
Definition at line 279 of file DataOnDemandSvc.h.
|
private |
Definition at line 242 of file DataOnDemandSvc.h.
|
private |
Definition at line 240 of file DataOnDemandSvc.h.
|
private |
Definition at line 241 of file DataOnDemandSvc.h.
|
private |
Definition at line 245 of file DataOnDemandSvc.h.
|
private |
Definition at line 246 of file DataOnDemandSvc.h.
|
private |
Definition at line 244 of file DataOnDemandSvc.h.
Data provider reference.
Definition at line 231 of file DataOnDemandSvc.h.
|
private |
Definition at line 239 of file DataOnDemandSvc.h.
|
private |
Definition at line 255 of file DataOnDemandSvc.h.
|
private |
Definition at line 237 of file DataOnDemandSvc.h.