| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

IChronoSvc.h

Go to the documentation of this file.
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 IChronoSvc : virtual public IInterface
00034 {
00035 public:
00036   // ==========================================================================
00038   typedef    std::string     ChronoTag  ;
00040   //typedef    longlong        ChronoTime ;  
00041   typedef    double          ChronoTime ;  
00042   // ==========================================================================
00043 public:
00044   // ==========================================================================
00045   // status of Chrono objects
00046   enum ChronoStatus
00047     {
00048       UNKNOWN = 0 ,                       
00049       RUNNING     , 
00050       STOPPED     
00051     };
00052   // types of Chrono objects
00053   enum ChronoType 
00054     { 
00055       USER = 0 , 
00056       KERNEL   , 
00057       ELAPSED  
00058     } ;
00059   // ==========================================================================
00060 public:
00061   // ==========================================================================
00066   virtual       ChronoEntity* chronoStart   ( const ChronoTag& t ) = 0;
00067   // ==========================================================================
00072   virtual const ChronoEntity* chronoStop    ( const ChronoTag& t ) = 0;  
00073   // ==========================================================================
00079   virtual ChronoTime  chronoDelta   ( const ChronoTag& t , ChronoType f ) = 0 ;
00080   // ==========================================================================
00085   virtual void  chronoPrint   ( const ChronoTag&  t ) = 0;
00086   // ==========================================================================
00091   virtual ChronoStatus  chronoStatus ( const ChronoTag&  t ) = 0;
00092   // ==========================================================================
00097   virtual const ChronoEntity* chrono ( const ChronoTag& t ) const = 0 ;
00098   // ==========================================================================
00099 public:
00100   // ==========================================================================
00102   static const InterfaceID& interfaceID() ;
00103   // ==========================================================================
00104 protected:  
00105   // ==========================================================================
00106   // protected and virtual destructor 
00107   virtual ~IChronoSvc(); 
00108   // ==========================================================================
00109 };
00110 // ============================================================================
00111 // The END
00112 // ============================================================================
00113 #endif // GAUDIKERNEL_ICHRONOSVC_H
00114 // ============================================================================
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:56:57 2011 for GaudiKernel by doxygen 1.4.7