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
47  {
48  UNKNOWN = 0 ,
50  STOPPED
51  };
52  // types of Chrono objects
54  {
55  USER = 0 ,
57  ELAPSED
58  } ;
59  // ==========================================================================
60 public:
61  // ==========================================================================
66  virtual ChronoEntity* chronoStart ( const ChronoTag& t ) = 0;
67  // ==========================================================================
72  virtual const ChronoEntity* chronoStop ( const ChronoTag& t ) = 0;
73  // ==========================================================================
79  virtual ChronoTime chronoDelta ( const ChronoTag& t , ChronoType f ) = 0 ;
80  // ==========================================================================
85  virtual void chronoPrint ( const ChronoTag& t ) = 0;
86  // ==========================================================================
91  virtual ChronoStatus chronoStatus ( const ChronoTag& t ) = 0;
92  // ==========================================================================
97  virtual const ChronoEntity* chrono ( const ChronoTag& t ) const = 0 ;
98  // ==========================================================================
99 };
100 // ============================================================================
101 // The END
102 // ============================================================================
103 #endif // GAUDIKERNEL_ICHRONOSVC_H
104 // ============================================================================
a small helper class for implementation of ChronoStatSvc service, It also could be used as some local...
Definition: ChronoEntity.h:21
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:14
STL class.
std::string ChronoTag
the actual type of identifier for Chrono objects
Definition: IChronoSvc.h:38
Definition of the basic interface.
Definition: IInterface.h:234
double ChronoTime
Type of the delta-time.
Definition: IChronoSvc.h:41
#define GAUDI_API
Definition: Kernel.h:107
"Chrono"-related part of interface IChronoStatSvc
Definition: IChronoSvc.h:31