Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012
Public Member Functions | Private Member Functions | Private Attributes

Gaudi::Utils::LockedChrono Class Reference

Helper object, useful for measurement of CPU-performance of highly-recursive structures, e.g. More...

#include <LockedChrono.h>

Collaboration diagram for Gaudi::Utils::LockedChrono:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 LockedChrono (ChronoEntity &c, bool &lock)
 constructor from the actual timer: start the timer
 ~LockedChrono ()
 destructor:

Private Member Functions

 LockedChrono ()
 no default constructor

Private Attributes

ChronoEntitym_timer
 the actual timer
bool & m_locker
 the actual locker
bool m_locked
 locked ?

Detailed Description

Helper object, useful for measurement of CPU-performance of highly-recursive structures, e.g.

Data-On-Demand service, complex algorithms, etc...

  class MyClass ...
  { 

  public:
 
  void doSomethingRecursive() const 
    {
      ...
      LockedChrono timer ( m_chrono , m_lock ) ;
      ...
      // some direct or indirect recursive call:
      if ( ... ) { doSomethingRecursive () ; } 
      ...
    }
 
  private:

     mutable bool         m_lock   ;    // lock  
     mutable ChronoEntity m_chrono ;    // actual timer 

  };
Author:
Vanya BELYAEV Ivan.Belyaev@nikhef.nl
Date:
2009-08-10

Definition at line 54 of file LockedChrono.h.


Constructor & Destructor Documentation

Gaudi::Utils::LockedChrono::LockedChrono ( ChronoEntity c,
bool &  lock 
) [inline]

constructor from the actual timer: start the timer

Definition at line 59 of file LockedChrono.h.

        : m_timer  ( c     ) 
        , m_locker ( lock  )
        , m_locked ( false )
      {
        if  ( !lock ) 
        {
          m_timer.start() ;
          m_locker = true ;
          m_locked = true ;
        }  
      }
Gaudi::Utils::LockedChrono::~LockedChrono (  ) [inline]

destructor:

Definition at line 72 of file LockedChrono.h.

      { 
        if  ( m_locked ) 
        { 
          m_timer.stop  () ;
          m_locker = false ;
        }  
      }
Gaudi::Utils::LockedChrono::LockedChrono (  ) [private]

no default constructor


Member Data Documentation

bool Gaudi::Utils::LockedChrono::m_locked [private]

locked ?

Definition at line 93 of file LockedChrono.h.

bool& Gaudi::Utils::LockedChrono::m_locker [private]

the actual locker

Definition at line 91 of file LockedChrono.h.

ChronoEntity& Gaudi::Utils::LockedChrono::m_timer [private]

the actual timer

Definition at line 89 of file LockedChrono.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

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