| The Gaudi Framework v29r0 (ff2e7097)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

LockedChrono.h
Go to the documentation of this file.
1 #ifndef GAUDI_LOCKEDCHRONO_H
2 #define GAUDI_LOCKEDCHRONO_H 1
3 // ===========================================================================
4 // Include files
5 // ===========================================================================
6 // GaudiKernel
7 // ===========================================================================
8 #include "GaudiKernel/ChronoEntity.h"
9 // ===========================================================================
10 namespace Gaudi
11 {
12 // =========================================================================
13 namespace Utils
14 {
15 // =======================================================================
52 class LockedChrono
53 {
54 public:
55 // ======================================================================
57 LockedChrono( ChronoEntity& c, bool& lock ) : m_timer( c ), m_locker( lock )
58 {
59 if ( !lock ) {
60 m_timer.start();
61 m_locker = true;
62 m_locked = true;
63 }
64 }
66 ~LockedChrono()
67 {
68 if ( m_locked ) {
69 m_timer.stop();
70 m_locker = false;
71 }
72 }
73 // ======================================================================
75 LockedChrono() = delete;
76 // ======================================================================
77 private:
78 // ======================================================================
80 ChronoEntity& m_timer; // the actual timer
82 bool& m_locker; // the actual locker
84 bool m_locked = false; // locked ?
85 // ======================================================================
86 };
87 // ========================================================================
88 } // end namespace Gaudi::Utils
89 // ==========================================================================
90 } // end of namespace Gaudi
91 // ============================================================================
92 // The END
93 // ============================================================================
94 #endif // GAUDI_LOCKEDCHRONO_H
95 // ============================================================================
gaudirun.c
c
Definition: gaudirun.py:407
ChronoEntity
a small helper class for implementation of ChronoStatSvc service, It also could be used as some local...
Definition: ChronoEntity.h:21
ChronoEntity::start
IChronoSvc::ChronoStatus start()
start the current chrono
Definition: ChronoEntity.cpp:47
Gaudi::Utils::LockedChrono::m_timer
ChronoEntity & m_timer
the actual timer
Definition: LockedChrono.h:80
Gaudi::Utils::LockedChrono::LockedChrono
LockedChrono()=delete
no default constructor
Gaudi::Utils::LockedChrono::m_locker
bool & m_locker
the actual locker
Definition: LockedChrono.h:82
Gaudi::Utils::LockedChrono::LockedChrono
LockedChrono(ChronoEntity &c, bool &lock)
constructor from the actual timer: start the timer
Definition: LockedChrono.h:57
Gaudi::Utils::LockedChrono::m_locked
bool m_locked
locked ?
Definition: LockedChrono.h:84
Gaudi::Utils::LockedChrono
Helper object, useful for measurement of CPU-performance of highly-recursive structures, e.g.
Definition: LockedChrono.h:52
ChronoEntity::stop
IChronoSvc::ChronoStatus stop()
stop the chrono
Definition: ChronoEntity.cpp:65
ChronoEntity.h
Gaudi
Helper functions to set/get the application return code.
Definition: __init__.py:1
Gaudi::Utils::LockedChrono::~LockedChrono
~LockedChrono()
destructor:
Definition: LockedChrono.h:66