Gaudi Framework, version v21r6

Home   Generated: 11 Nov 2009

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 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 // ============================================================================

Generated at Wed Nov 11 16:22:59 2009 for Gaudi Framework, version v21r6 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004