Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
HistorySvc.h
Go to the documentation of this file.
1 #ifndef GAUDISVC_FASTHISTORYSVC_H
2 #define GAUDISVC_FASTHISTORYSVC_H
3 
5 
6 #include "GaudiKernel/AlgTool.h"
9 #include "GaudiKernel/Service.h"
10 #include "GaudiKernel/StatusCode.h"
11 #include <Gaudi/Algorithm.h>
12 
13 #include "GaudiKernel/ClassID.h"
14 #include "GaudiKernel/MsgStream.h"
15 #include <fstream>
16 #include <map>
17 #include <set>
18 #include <string>
19 #include <vector>
20 
21 class StoreGateSvc;
22 class IAlgContextSvc;
23 class IIncidentSvc;
24 class HistoryObj;
25 class DataHistory;
26 class AlgorithmHistory;
27 class ServiceHistory;
28 struct DHH;
29 
36 class HistorySvc : public extends<Service, IHistorySvc, IIncidentListener> {
37 public:
38  using extends::extends;
39 
40  StatusCode initialize() override;
41  StatusCode reinitialize() override;
42  StatusCode finalize() override;
43  StatusCode stop() override;
44 
45  virtual StatusCode captureState();
46 
47  StatusCode registerJob() override;
48  StatusCode listProperties() const override;
49  JobHistory* getJobHistory() const override;
50 
51  StatusCode registerSvc( const IService& ) override;
52  StatusCode listProperties( const IService& ) const override;
53  ServiceHistory* getServiceHistory( const IService& ) const override;
54  void getServiceHistory( std::set<ServiceHistory*>& ) const override;
55 
56  StatusCode registerAlg( const Gaudi::Algorithm& ) override;
57  StatusCode listProperties( const Gaudi::Algorithm& ) const override;
58  AlgorithmHistory* getAlgHistory( const Gaudi::Algorithm& ) const override;
59  void getAlgHistory( std::set<AlgorithmHistory*>& ) const override;
60 
61  StatusCode registerAlgTool( const IAlgTool& ) override;
62  StatusCode listProperties( const IAlgTool& ) const override;
63  AlgToolHistory* getAlgToolHistory( const IAlgTool& ) const override;
64  void getAlgToolHistory( std::set<AlgToolHistory*>& ) const override;
65 
66  DataHistory* createDataHistoryObj( const CLID& id, const std::string& key, const std::string& store ) override;
67  virtual StatusCode registerDataHistory( const CLID& id, const std::string& key, const std::string& store );
68  DataHistory* getDataHistory( const CLID& id, const std::string& key, const std::string& store ) const override;
69  virtual int getDataHistory( const CLID& id, const std::string& key, const std::string& storeName,
70  std::list<DataHistory*>& dhlist ) const;
71 
72  void handle( const Incident& inc ) override;
73 
74 private:
75  // typedef std::map<const CLID, std::map<const std::string, DataHistory*> >
76  // DataHistMap;
77 
79 
81  typedef DataHistMap::iterator DHMitr;
82  typedef DataHistMap::const_iterator DHMCitr;
83 
84  Gaudi::Property<bool> m_dump{this, "Dump", false};
85  Gaudi::Property<bool> m_activate{this, "Activate", true};
87 
88  void clearState();
89 
90  bool m_isInitialized = false;
91 
93 
95 
99 
101 
103 
104  void dumpProperties( std::ofstream& ) const;
105  void dumpProperties( const IService&, std::ofstream& ) const;
106  void dumpProperties( const Gaudi::Algorithm&, std::ofstream& ) const;
107  void dumpProperties( const IAlgTool&, std::ofstream& ) const;
108 
109  void dumpState( std::ofstream& ) const;
110  void dumpState( const INamedInterface*, std::ofstream& ) const;
111 
112  std::string dumpProp( const Gaudi::Details::PropertyBase*, const bool isXML = false, int indent = 0 ) const;
113 
114  IAlgorithm* getCurrentIAlg() const;
115 
118 
119  bool m_outputFileTypeXML = false;
120 };
121 
122 #endif
StatusCode reinitialize() override
Definition: HistorySvc.cpp:77
AlgToolHistory * getAlgToolHistory(const IAlgTool &) const override
Definition: HistorySvc.cpp:629
SmartIF< IToolSvc > m_toolSvc
Definition: HistorySvc.h:117
StatusCode registerSvc(const IService &) override
Definition: HistorySvc.cpp:496
Implementation of property with value of concrete type.
Definition: Property.h:352
StatusCode registerAlgTool(const IAlgTool &) override
Definition: HistorySvc.cpp:564
std::string dumpProp(const Gaudi::Details::PropertyBase *, const bool isXML=false, int indent=0) const
Definition: HistorySvc.cpp:657
AlgorithmHistory class definition.
StatusCode initialize() override
Definition: HistorySvc.cpp:111
AlgorithmHistory * getAlgHistory(const Gaudi::Algorithm &) const override
Definition: HistorySvc.cpp:325
StatusCode listProperties() const override
Definition: HistorySvc.cpp:342
virtual StatusCode registerDataHistory(const CLID &id, const std::string &key, const std::string &store)
Definition: HistorySvc.cpp:435
StatusCode stop() override
Definition: HistorySvc.cpp:234
HistorySvc class definition.
Definition: HistorySvc.h:36
Base class for History Objects.
Definition: HistoryObj.h:21
std::multimap< DHH, DataHistory * > m_datMap
Definition: HistorySvc.h:100
std::map< const AlgTool *, AlgToolHistory * > m_algtoolmap
Definition: HistorySvc.h:97
JobHistory class definition.
Definition: JobHistory.h:22
IAlgorithm * getCurrentIAlg() const
Definition: HistorySvc.cpp:399
void handle(const Incident &inc) override
Definition: HistorySvc.cpp:646
std::multimap< DHH, DataHistory * > DataHistMap
Definition: HistorySvc.h:80
STL class.
STL class.
Gaudi::Property< bool > m_dump
Definition: HistorySvc.h:84
bool m_isInitialized
Definition: HistorySvc.h:90
JobHistory * getJobHistory() const override
Definition: HistorySvc.cpp:396
General service interface definition.
Definition: IService.h:18
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
bool m_outputFileTypeXML
Definition: HistorySvc.h:119
DataHistory class definition.
Definition: DataHistory.h:23
IAlgContextSvc * p_algCtxSvc
Definition: HistorySvc.h:92
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
Definition: Property.h:32
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
DataHistMap::const_iterator DHMCitr
Definition: HistorySvc.h:82
STL class.
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
StatusCode finalize() override
Definition: HistorySvc.cpp:257
AlgToolHistory class definition.
void dumpState(std::ofstream &) const
Definition: HistorySvc.cpp:674
IIncidentSvc * m_incidentSvc
Definition: HistorySvc.h:116
IInterface compliant class extending IInterface with the name() method.
STL class.
void dumpProperties(std::ofstream &) const
Definition: HistorySvc.cpp:378
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
DataHistory * createDataHistoryObj(const CLID &id, const std::string &key, const std::string &store) override
Definition: HistorySvc.cpp:408
Base class for all Incidents (computing events).
Definition: Incident.h:17
StatusCode registerJob() override
Definition: HistorySvc.cpp:339
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:79
ServiceHistory class definition.
IVersHistoryObj::PropertyList PropertyList
Definition: HistorySvc.h:78
An abstract interface for Algorithm Context Service.
std::map< const Gaudi::Algorithm *, AlgorithmHistory * > m_algmap
Definition: HistorySvc.h:94
Gaudi::Property< std::string > m_outputFile
Definition: HistorySvc.h:86
std::set< const IAlgTool * > m_ialgtools
Definition: HistorySvc.h:96
StatusCode registerAlg(const Gaudi::Algorithm &) override
Definition: HistorySvc.cpp:276
DataHistMap::iterator DHMitr
Definition: HistorySvc.h:81
void clearState()
Definition: HistorySvc.cpp:100
virtual StatusCode captureState()
Definition: HistorySvc.cpp:160
ServiceHistory * getServiceHistory(const IService &) const override
Definition: HistorySvc.cpp:523
std::map< const IService *, ServiceHistory * > m_svcmap
Definition: HistorySvc.h:98
DataHistory * getDataHistory(const CLID &id, const std::string &key, const std::string &store) const override
Definition: HistorySvc.cpp:468
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:23
Gaudi::Property< bool > m_activate
Definition: HistorySvc.h:85
std::unique_ptr< JobHistory > m_jobHistory
Definition: HistorySvc.h:102