| # Gaudi Framework, version v22r2 |

Home |  | Generated: Tue May 10 2011

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:
[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
ChronoEntity & | m_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:

- /afs/.cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v22r2/GaudiKernel/GaudiKernel/LockedChrono.h

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines