The Gaudi Framework  v30r4 (9b837755)
IChronoSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_ICHRONOSVC_H
2 #define GAUDIKERNEL_ICHRONOSVC_H 1
3 // ============================================================================
4 // Include files
5 // ============================================================================
6 // STD&STL
7 // ============================================================================
8 #include <string>
9 // ============================================================================
10 // GaudiKernel
11 // ============================================================================
12 #include "GaudiKernel/IInterface.h"
13 // ============================================================================
14 // forward declaration
15 // ============================================================================
16 class ChronoEntity;
17 // ============================================================================
31 class GAUDI_API IChronoSvc : virtual public IInterface
32 {
33 public:
36  // ==========================================================================
40  typedef double ChronoTime;
41  // ==========================================================================
42 public:
43  // ==========================================================================
44  // status of Chrono objects
45  enum ChronoStatus { UNKNOWN = 0, RUNNING, STOPPED };
46  // types of Chrono objects
47  enum ChronoType { USER = 0, KERNEL, ELAPSED };
48  // ==========================================================================
49 public:
50  // ==========================================================================
55  virtual ChronoEntity* chronoStart( const ChronoTag& t ) = 0;
56  // ==========================================================================
61  virtual const ChronoEntity* chronoStop( const ChronoTag& t ) = 0;
62  // ==========================================================================
68  virtual ChronoTime chronoDelta( const ChronoTag& t, ChronoType f ) = 0;
69  // ==========================================================================
74  virtual void chronoPrint( const ChronoTag& t ) = 0;
75  // ==========================================================================
80  virtual ChronoStatus chronoStatus( const ChronoTag& t ) = 0;
81  // ==========================================================================
86  virtual const ChronoEntity* chrono( const ChronoTag& t ) const = 0;
87  // ==========================================================================
88 };
89 // ============================================================================
90 // The END
91 // ============================================================================
92 #endif // GAUDIKERNEL_ICHRONOSVC_H
93 // ============================================================================
a small helper class for implementation of ChronoStatSvc service, It also could be used as some local...
Definition: ChronoEntity.h:21
STL class.
std::string ChronoTag
the actual type of identifier for Chrono objects
Definition: IChronoSvc.h:38
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
Definition of the basic interface.
Definition: IInterface.h:277
double ChronoTime
Type of the delta-time.
Definition: IChronoSvc.h:40
#define GAUDI_API
Definition: Kernel.h:71
"Chrono"-related part of interface IChronoStatSvc
Definition: IChronoSvc.h:31