00001
00002 #ifndef GAUDIKERNEL_CHRONO_H
00003 #define GAUDIKERNEL_CHRONO_H
00004
00005
00006 #include "GaudiKernel/Kernel.h"
00007 #include "GaudiKernel/IChronoStatSvc.h"
00008 #include <string>
00009
00010
00018 class Chrono {
00019 public:
00021 Chrono( IChronoStatSvc* chronoSvc = 0 ,
00022 const std::string& chronoTag = "CHRONO::UNNAMED" )
00023 : m_chronoSvc( chronoSvc )
00024 , m_chronoTag( chronoTag )
00025 { if( 0 != m_chronoSvc ) { m_chronoSvc->chronoStart( m_chronoTag ); } };
00027 ~Chrono() { if( 0 != m_chronoSvc ) { m_chronoSvc->chronoStop ( m_chronoTag ); } };
00028 private:
00030 mutable IChronoStatSvc* m_chronoSvc;
00032 std::string m_chronoTag;
00033 };
00034
00035 #endif // GAUDIKERNEL_CHRONO_H
00036