The Gaudi Framework  v33r0 (d5ea422b)
IHistorySvc.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIKERNEL_IHISTORYSVC_H
12 #define GAUDIKERNEL_IHISTORYSVC_H
13 
14 #include "GaudiKernel/ClassID.h"
15 #include "GaudiKernel/IService.h"
16 
17 #include <set>
18 #include <string>
19 
20 class JobHistory;
21 
22 class ServiceHistory;
23 class IService;
24 
25 namespace Gaudi {
26  class Algorithm;
27 }
28 class AlgorithmHistory;
29 
30 class IAlgTool;
31 class AlgToolHistory;
32 
33 class DataHistory;
34 class HistoryObj;
35 
43 class GAUDI_API IHistorySvc : virtual public IService {
44 public:
47 
48  // Job level objects
49  virtual StatusCode registerJob() = 0;
50  virtual StatusCode listProperties() const = 0;
51  virtual JobHistory* getJobHistory() const = 0;
52 
53  // Service level objects
54  virtual StatusCode registerSvc( const IService& ) = 0;
55  virtual StatusCode listProperties( const IService& ) const = 0;
56  virtual ServiceHistory* getServiceHistory( const IService& ) const = 0;
57  virtual void getServiceHistory( std::set<ServiceHistory*>& ) const = 0;
58 
59  // Algorithm level objects
60  virtual StatusCode registerAlg( const Gaudi::Algorithm& ) = 0;
61  virtual StatusCode listProperties( const Gaudi::Algorithm& ) const = 0;
62  virtual AlgorithmHistory* getAlgHistory( const Gaudi::Algorithm& ) const = 0;
63  virtual void getAlgHistory( std::set<AlgorithmHistory*>& ) const = 0;
64 
65  // AlgTool level objects
66  virtual StatusCode registerAlgTool( const IAlgTool& ) = 0;
67  virtual StatusCode listProperties( const IAlgTool& ) const = 0;
68  virtual AlgToolHistory* getAlgToolHistory( const IAlgTool& ) const = 0;
69  virtual void getAlgToolHistory( std::set<AlgToolHistory*>& ) const = 0;
70 
71  // DataObj level objects
72  virtual DataHistory* createDataHistoryObj( const CLID& id, const std::string& key, const std::string& storeName ) = 0;
73  virtual DataHistory* getDataHistory( const CLID& id, const std::string& key, const std::string& storeName ) const = 0;
74 };
75 
76 #endif // GAUDIKERNEL_IHISTORYSVC_H
AlgorithmHistory class definition.
Base class for History Objects.
Definition: HistoryObj.h:31
JobHistory class definition.
Definition: JobHistory.h:32
STL class.
General service interface definition.
Definition: IService.h:28
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
DataHistory class definition.
Definition: DataHistory.h:33
unsigned int CLID
Class ID definition.
Definition: ClassID.h:18
AlgToolHistory class definition.
Alias for backward compatibility.
Definition: Algorithm.h:66
STL class.
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:33
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:89
ServiceHistory class definition.
DeclareInterfaceID(IService, 4, 0)
InterfaceID.
#define GAUDI_API
Definition: Kernel.h:81
Header file for std:chrono::duration-based Counters.
Definition: __init__.py:1
Definition of the IHistorySvc interface class.
Definition: IHistorySvc.h:43