|
Gaudi Framework, version v21r6 |
| Home | Generated: 11 Nov 2009 |
00001 // $Id: IChronoSvc.h,v 1.3 2008/05/13 12:36:54 marcocle Exp $ 00002 // ============================================================================ 00003 #ifndef GAUDIKERNEL_ICHRONOSVC_H 00004 #define GAUDIKERNEL_ICHRONOSVC_H 1 00005 // ============================================================================ 00006 // Include files 00007 // ============================================================================ 00008 // STD&STL 00009 // ============================================================================ 00010 #include <string> 00011 // ============================================================================ 00012 // GaudiKernel 00013 // ============================================================================ 00014 #include "GaudiKernel/IInterface.h" 00015 // ============================================================================ 00016 // forward declaration 00017 // ============================================================================ 00018 class ChronoEntity ; 00019 // ============================================================================ 00033 class GAUDI_API IChronoSvc: virtual public IInterface 00034 { 00035 public: 00037 DeclareInterfaceID(IChronoSvc,3,0); 00038 // ========================================================================== 00040 typedef std::string ChronoTag ; 00042 //typedef longlong ChronoTime ; 00043 typedef double ChronoTime ; 00044 // ========================================================================== 00045 public: 00046 // ========================================================================== 00047 // status of Chrono objects 00048 enum ChronoStatus 00049 { 00050 UNKNOWN = 0 , 00051 RUNNING , 00052 STOPPED 00053 }; 00054 // types of Chrono objects 00055 enum ChronoType 00056 { 00057 USER = 0 , 00058 KERNEL , 00059 ELAPSED 00060 } ; 00061 // ========================================================================== 00062 public: 00063 // ========================================================================== 00068 virtual ChronoEntity* chronoStart ( const ChronoTag& t ) = 0; 00069 // ========================================================================== 00074 virtual const ChronoEntity* chronoStop ( const ChronoTag& t ) = 0; 00075 // ========================================================================== 00081 virtual ChronoTime chronoDelta ( const ChronoTag& t , ChronoType f ) = 0 ; 00082 // ========================================================================== 00087 virtual void chronoPrint ( const ChronoTag& t ) = 0; 00088 // ========================================================================== 00093 virtual ChronoStatus chronoStatus ( const ChronoTag& t ) = 0; 00094 // ========================================================================== 00099 virtual const ChronoEntity* chrono ( const ChronoTag& t ) const = 0 ; 00100 // ========================================================================== 00101 protected: 00102 // ========================================================================== 00103 // protected and virtual destructor 00104 virtual ~IChronoSvc(); 00105 // ========================================================================== 00106 }; 00107 // ============================================================================ 00108 // The END 00109 // ============================================================================ 00110 #endif // GAUDIKERNEL_ICHRONOSVC_H 00111 // ============================================================================