All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IChronoSvc.h
Go to the documentation of this file.
1 // $Id: IChronoSvc.h,v 1.3 2008/05/13 12:36:54 marcocle Exp $
2 // ============================================================================
3 #ifndef GAUDIKERNEL_ICHRONOSVC_H
4 #define GAUDIKERNEL_ICHRONOSVC_H 1
5 // ============================================================================
6 // Include files
7 // ============================================================================
8 // STD&STL
9 // ============================================================================
10 #include <string>
11 // ============================================================================
12 // GaudiKernel
13 // ============================================================================
14 #include "GaudiKernel/IInterface.h"
15 // ============================================================================
16 // forward declaration
17 // ============================================================================
18 class ChronoEntity ;
19 // ============================================================================
33 class GAUDI_API IChronoSvc: virtual public IInterface
34 {
35 public:
38  // ==========================================================================
40  typedef std::string ChronoTag ;
42  //typedef longlong ChronoTime ;
43  typedef double ChronoTime ;
44  // ==========================================================================
45 public:
46  // ==========================================================================
47  // status of Chrono objects
49  {
50  UNKNOWN = 0 ,
52  STOPPED
53  };
54  // types of Chrono objects
56  {
57  USER = 0 ,
59  ELAPSED
60  } ;
61  // ==========================================================================
62 public:
63  // ==========================================================================
68  virtual ChronoEntity* chronoStart ( const ChronoTag& t ) = 0;
69  // ==========================================================================
74  virtual const ChronoEntity* chronoStop ( const ChronoTag& t ) = 0;
75  // ==========================================================================
81  virtual ChronoTime chronoDelta ( const ChronoTag& t , ChronoType f ) = 0 ;
82  // ==========================================================================
87  virtual void chronoPrint ( const ChronoTag& t ) = 0;
88  // ==========================================================================
93  virtual ChronoStatus chronoStatus ( const ChronoTag& t ) = 0;
94  // ==========================================================================
99  virtual const ChronoEntity* chrono ( const ChronoTag& t ) const = 0 ;
100  // ==========================================================================
101 protected:
102  // ==========================================================================
103  // protected and virtual destructor
104  virtual ~IChronoSvc();
105  // ==========================================================================
106 };
107 // ============================================================================
108 // The END
109 // ============================================================================
110 #endif // GAUDIKERNEL_ICHRONOSVC_H
111 // ============================================================================
a small helper class for implementation of ChronoStatSvc service, It also could be used as some local...
Definition: ChronoEntity.h:21
std::string ChronoTag
the actual type of identifier for Chrono objects
Definition: IChronoSvc.h:40
Definition of the basic interface.
Definition: IInterface.h:160
#define DeclareInterfaceID(name, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
double ChronoTime
Type of the delta-time.
Definition: IChronoSvc.h:43
#define GAUDI_API
Definition: Kernel.h:108
"Chrono"-related part of interface IChronoStatSvc
Definition: IChronoSvc.h:33