All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Gaudi::Utils::LockedChrono Class Reference

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

#include <GaudiKernel/LockedChrono.h>

Collaboration diagram for Gaudi::Utils::LockedChrono:

Public Member Functions

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

Private Member Functions

 LockedChrono ()
 no default constructor More...
 

Private Attributes

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

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..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.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.

60  : m_timer ( c )
61  , m_locker ( lock )
62  , m_locked ( false )
63  {
64  if ( !lock )
65  {
66  m_timer.start() ;
67  m_locker = true ;
68  m_locked = true ;
69  }
70  }
def lock
Definition: locker.py:16
IChronoSvc::ChronoStatus start()
start the current chrono
ChronoEntity & m_timer
the actual timer
Definition: LockedChrono.h:89
bool & m_locker
the actual locker
Definition: LockedChrono.h:91
Gaudi::Utils::LockedChrono::~LockedChrono ( )
inline

destructor:

Definition at line 72 of file LockedChrono.h.

73  {
74  if ( m_locked )
75  {
76  m_timer.stop () ;
77  m_locker = false ;
78  }
79  }
ChronoEntity & m_timer
the actual timer
Definition: LockedChrono.h:89
bool & m_locker
the actual locker
Definition: LockedChrono.h:91
IChronoSvc::ChronoStatus stop()
stop the chrono
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: