Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012

LockedChrono.h

Go to the documentation of this file.
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 // ============================================================================
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Thu Jun 28 2012 23:27:20 for Gaudi Framework, version v23r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004