![]() |
The Gaudi Framework
master (ff829712)
|
The DataOnDemandSvc listens to incidents typically triggered by the data service of the configurable name "IncidentName". More...
#include </builds/gaudi/Gaudi/GaudiCoreSvc/src/IncidentSvc/DataOnDemandSvc.h>
Classes | |
struct | Leaf |
struct | Node |
Helper class of the DataOnDemandSvc. More... | |
struct | Protection |
Helper class of the DataOnDemandSvc. More... | |
Public Types | |
typedef std::vector< std::string > | Setup |
typedef TClass * | ClassH |
typedef GaudiUtils::HashMap< Gaudi::StringKey, Node > | NodeMap |
typedef GaudiUtils::HashMap< Gaudi::StringKey, Leaf > | AlgMap |
![]() | |
using | base_class |
Typedef to this class. | |
using | extend_interfaces_base |
Typedef to the base of this class. | |
![]() | |
using | Factory = Gaudi::PluginService::Factory<IService*( const std::string&, ISvcLocator* )> |
![]() | |
using | PropertyHolderImpl |
Typedef used to refer to this class from derived classes, as in. | |
![]() | |
using | base_class |
![]() | |
using | ext_iids |
take union of the ext_iids of all Interfaces... | |
Public Member Functions | |
StatusCode | initialize () override |
Inherited Service overrides: Service initialization. | |
StatusCode | finalize () override |
Inherited Service overrides: Service finalization. | |
StatusCode | reinitialize () override |
Inherited Service overrides: Service reinitialization. | |
void | handle (const Incident &incident) override |
IIncidentListener interfaces overrides: incident handling. | |
![]() | |
void const * | i_cast (const InterfaceID &tid) const override |
Implementation of IInterface::i_cast. | |
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
Implementation of IInterface::queryInterface. | |
std::vector< std::string > | getInterfaceNames () const override |
Implementation of IInterface::getInterfaceNames. | |
![]() | |
const std::string & | name () const override |
Retrieve name of the service. | |
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. | |
StatusCode | sysStart () override |
Initialize Service. | |
StatusCode | sysStop () override |
Initialize Service. | |
StatusCode | sysFinalize () override |
Finalize Service. | |
StatusCode | sysReinitialize () override |
Re-initialize the Service. | |
StatusCode | sysRestart () override |
Re-initialize the Service. | |
Service (std::string name, ISvcLocator *svcloc) | |
Standard Constructor. | |
SmartIF< ISvcLocator > & | serviceLocator () const override |
Retrieve pointer to service locator. | |
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. | |
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. | |
![]() | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
Set the property from a property. | |
StatusCode | setProperty (const std::string &name, const char *v) |
Special case for string literals. | |
StatusCode | setProperty (const std::string &name, const std::string &v) |
Special case for std::string. | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value | |
PropertyHolder ()=default | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop) |
Declare a property. | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none") |
Helper to wrap a regular data member and use it as a regular property. | |
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. | |
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") |
Declare a remote property. | |
StatusCode | setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override |
set the property from another property with a different name | |
StatusCode | setProperty (const std::string &s) override |
set the property from the formatted string | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
Set the property from a property. | |
StatusCode | setProperty (const std::string &name, const char *v) |
Special case for string literals. | |
StatusCode | setProperty (const std::string &name, const std::string &v) |
Special case for std::string. | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value | |
StatusCode | setPropertyRepr (const std::string &n, const std::string &r) override |
set the property from name and value string representation | |
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override |
get the property | |
const Gaudi::Details::PropertyBase & | getProperty (std::string_view name) const override |
get the property by name | |
StatusCode | getProperty (std::string_view n, std::string &v) const override |
convert the property to the string | |
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override |
get all properties | |
bool | hasProperty (std::string_view name) const override |
Return true if we have a property with the given name. | |
Gaudi::Details::PropertyBase * | property (std::string_view name) const |
\fixme property and bindPropertiesTo should be protected | |
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) | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream | |
![]() | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. | |
const SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) | |
Protected Member Functions | |
StatusCode | configureHandler (Leaf &leaf) |
Configure handler for leaf. | |
StatusCode | execHandler (const std::string &tag, Leaf &leaf) |
Execute leaf handler (algorithm) | |
StatusCode | execHandler (const std::string &tag, Node &node) |
Execute node handler (simple object creation using seal reflection) | |
StatusCode | setupNodeHandlers () |
Initialize node handlers. | |
StatusCode | setupAlgHandlers () |
Initialize leaf handlers. | |
StatusCode | setup () |
Setup routine (called by (re-) initialize. | |
void | i_setNodeHandler (const std::string &name, const std::string &type) |
Internal method to initialize a node handler. | |
StatusCode | i_setAlgHandler (const std::string &name, const Gaudi::Utils::TypeNameString &alg) |
Internal method to initialize an algorithm handler. | |
StatusCode | update () |
update the handlers | |
void | dump (const MSG::Level level, const bool mode=true) const |
dump the content of DataOnDemand service | |
![]() | |
std::vector< IAlgTool * > & | tools () |
~Service () override | |
int | outputLevel () const |
get the Service's output level | |
![]() | |
MSG::Level | setUpMessaging () const |
Set up local caches. | |
MSG::Level | resetMessaging () |
Reinitialize internal states. | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. | |
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. | |
SmartIF< IAlgManager > | m_algMgr = nullptr |
Algorithm manager. | |
SmartIF< IDataProviderSvc > | m_dataSvc = nullptr |
Data provider reference. | |
SmartIF< IToolSvc > | m_toolSvc |
Data provider reference. | |
AlgMap | m_algs |
Map of algorithms to handle incidents. | |
NodeMap | m_nodes |
Map of "empty" objects to be placed as intermediate nodes. | |
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. | |
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE |
Service state. | |
Gaudi::Property< int > | m_outputLevel { this, "OutputLevel", MSG::NIL, "output level" } |
flag indicating whether ToolHandle tools have been added to m_tools | |
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. | |
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 87 of file DataOnDemandSvc.h.
Definition at line 135 of file DataOnDemandSvc.h.
typedef TClass* DataOnDemandSvc::ClassH |
Definition at line 90 of file DataOnDemandSvc.h.
|
private |
Definition at line 245 of file DataOnDemandSvc.h.
Definition at line 134 of file DataOnDemandSvc.h.
typedef std::vector<std::string> DataOnDemandSvc::Setup |
Definition at line 89 of file DataOnDemandSvc.h.
|
protected |
Configure handler for leaf.
leaf | [IN] Reference to leaf handler |
Definition at line 347 of file DataOnDemandSvc.cpp.
|
inlineprivate |
Definition at line 190 of file DataOnDemandSvc.h.
|
protected |
dump the content of DataOnDemand service
level | the printout level |
mode | the printout mode |
Definition at line 554 of file DataOnDemandSvc.cpp.
|
protected |
Execute leaf handler (algorithm)
tag | [IN] Path to requested leaf |
leaf | [IN] Reference to leaf handler |
Definition at line 524 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 487 of file DataOnDemandSvc.cpp.
|
override |
Inherited Service overrides: Service finalization.
Definition at line 179 of file DataOnDemandSvc.cpp.
|
inlineprivate |
Definition at line 186 of file DataOnDemandSvc.h.
|
override |
IIncidentListener interfaces overrides: incident handling.
Definition at line 426 of file DataOnDemandSvc.cpp.
|
protected |
Internal method to initialize an algorithm handler.
Definition at line 99 of file DataOnDemandSvc.cpp.
|
protected |
|
override |
Inherited Service overrides: Service initialization.
Definition at line 162 of file DataOnDemandSvc.cpp.
|
override |
Inherited Service overrides: Service reinitialization.
Definition at line 223 of file DataOnDemandSvc.cpp.
|
protected |
Setup routine (called by (re-) initialize.
Definition at line 251 of file DataOnDemandSvc.cpp.
|
protected |
Initialize leaf handlers.
Definition at line 321 of file DataOnDemandSvc.cpp.
|
protected |
Initialize node handlers.
Definition at line 295 of file DataOnDemandSvc.cpp.
|
protected |
update the handlers
Definition at line 116 of file DataOnDemandSvc.cpp.
|
private |
Definition at line 246 of file DataOnDemandSvc.h.
|
private |
Definition at line 223 of file DataOnDemandSvc.h.
|
private |
Definition at line 240 of file DataOnDemandSvc.h.
|
private |
Definition at line 253 of file DataOnDemandSvc.h.
|
private |
Algorithm manager.
Definition at line 198 of file DataOnDemandSvc.h.
|
private |
Map of algorithms to handle incidents.
Definition at line 204 of file DataOnDemandSvc.h.
|
private |
Definition at line 236 of file DataOnDemandSvc.h.
|
private |
Data provider reference.
Definition at line 200 of file DataOnDemandSvc.h.
|
private |
Definition at line 226 of file DataOnDemandSvc.h.
|
private |
Definition at line 229 of file DataOnDemandSvc.h.
|
private |
Incident service.
Definition at line 196 of file DataOnDemandSvc.h.
|
private |
Definition at line 235 of file DataOnDemandSvc.h.
|
private |
Definition at line 219 of file DataOnDemandSvc.h.
|
private |
Definition at line 220 of file DataOnDemandSvc.h.
|
private |
Definition at line 218 of file DataOnDemandSvc.h.
|
private |
Definition at line 247 of file DataOnDemandSvc.h.
|
private |
Definition at line 222 of file DataOnDemandSvc.h.
|
private |
|
private |
Definition at line 251 of file DataOnDemandSvc.h.
|
private |
Map of "empty" objects to be placed as intermediate nodes.
Definition at line 206 of file DataOnDemandSvc.h.
|
private |
Definition at line 228 of file DataOnDemandSvc.h.
|
private |
Definition at line 249 of file DataOnDemandSvc.h.
|
private |
Definition at line 213 of file DataOnDemandSvc.h.
|
private |
Definition at line 211 of file DataOnDemandSvc.h.
|
private |
Definition at line 212 of file DataOnDemandSvc.h.
|
private |
Definition at line 216 of file DataOnDemandSvc.h.
|
private |
Definition at line 217 of file DataOnDemandSvc.h.
|
private |
Definition at line 215 of file DataOnDemandSvc.h.
Data provider reference.
Definition at line 202 of file DataOnDemandSvc.h.
|
private |
Definition at line 210 of file DataOnDemandSvc.h.
|
private |
Definition at line 225 of file DataOnDemandSvc.h.
|
private |
Definition at line 208 of file DataOnDemandSvc.h.