|
Gaudi Framework, version v23r2 |
| Home | Generated: Thu Jun 28 2012 |
00001 // $Id: $ 00002 // =========================================================================== 00003 #ifndef GAUDI_LOCKEDCHRONO_H 00004 #define GAUDI_LOCKEDCHRONO_H 1 00005 // =========================================================================== 00006 // Include files 00007 // =========================================================================== 00008 // GaudiKernel 00009 // =========================================================================== 00010 #include "GaudiKernel/ChronoEntity.h" 00011 // =========================================================================== 00012 namespace Gaudi 00013 { 00014 // ========================================================================= 00015 namespace Utils 00016 { 00017 // ======================================================================= 00054 class LockedChrono 00055 { 00056 public: 00057 // ====================================================================== 00059 LockedChrono ( ChronoEntity& c , bool& lock ) 00060 : m_timer ( c ) 00061 , m_locker ( lock ) 00062 , m_locked ( false ) 00063 { 00064 if ( !lock ) 00065 { 00066 m_timer.start() ; 00067 m_locker = true ; 00068 m_locked = true ; 00069 } 00070 } 00072 ~LockedChrono () 00073 { 00074 if ( m_locked ) 00075 { 00076 m_timer.stop () ; 00077 m_locker = false ; 00078 } 00079 } 00080 // ====================================================================== 00081 private: 00082 // ====================================================================== 00084 LockedChrono () ; // no default constructor 00085 // ====================================================================== 00086 private: 00087 // ====================================================================== 00089 ChronoEntity& m_timer ; // the actual timer 00091 bool& m_locker ; // the actual locker 00093 bool m_locked ; // locked ? 00094 // ====================================================================== 00095 } ; 00096 // ======================================================================== 00097 } // end namespace Gaudi::Utils 00098 // ========================================================================== 00099 } // end of namespace Gaudi 00100 // ============================================================================ 00101 // The END 00102 // ============================================================================ 00103 #endif // GAUDI_LOCKEDCHRONO_H 00104 // ============================================================================