The Gaudi Framework  v30r3 (a5ef0a68)
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 longlong ChronoTime ;
41  typedef double ChronoTime;
42  // ==========================================================================
43 public:
44  // ==========================================================================
45  // status of Chrono objects
46  enum ChronoStatus { UNKNOWN = 0, RUNNING, STOPPED };
47  // types of Chrono objects
48  enum ChronoType { USER = 0, KERNEL, ELAPSED };
49  // ==========================================================================
50 public:
51  // ==========================================================================
56  virtual ChronoEntity* chronoStart( const ChronoTag& t ) = 0;
57  // ==========================================================================
62  virtual const ChronoEntity* chronoStop( const ChronoTag& t ) = 0;
63  // ==========================================================================
69  virtual ChronoTime chronoDelta( const ChronoTag& t, ChronoType f ) = 0;
70  // ==========================================================================
75  virtual void chronoPrint( const ChronoTag& t ) = 0;
76  // ==========================================================================
81  virtual ChronoStatus chronoStatus( const ChronoTag& t ) = 0;
82  // ==========================================================================
87  virtual const ChronoEntity* chrono( const ChronoTag& t ) const = 0;
88  // ==========================================================================
89 };
90 // ============================================================================
91 // The END
92 // ============================================================================
93 #endif // GAUDIKERNEL_ICHRONOSVC_H
94 // ============================================================================
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:41
#define GAUDI_API
Definition: Kernel.h:104
"Chrono"-related part of interface IChronoStatSvc
Definition: IChronoSvc.h:31