| The Gaudi Framework v28r2-patches (bc4ad17a)

- 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 )
58 : m_timer ( c )
59 , m_locker ( lock )
60 {
61 if ( !lock )
62 {
63 m_timer.start() ;
64 m_locker = true ;
65 m_locked = true ;
66 }
67 }
69 ~LockedChrono ()
70 {
71 if ( m_locked )
72 {
73 m_timer.stop () ;
74 m_locker = false ;
75 }
76 }
77 // ======================================================================
79 LockedChrono () = delete;
80 // ======================================================================
81 private:
82 // ======================================================================
84 ChronoEntity& m_timer ; // the actual timer
86 bool& m_locker ; // the actual locker
88 bool m_locked = false; // locked ?
89 // ======================================================================
90 } ;
91 // ========================================================================
92 } // end namespace Gaudi::Utils
93 // ==========================================================================
94 } // end of namespace Gaudi
95 // ============================================================================
96 // The END
97 // ============================================================================
98 #endif // GAUDI_LOCKEDCHRONO_H
99 // ============================================================================
gaudirun.c
c
Definition: gaudirun.py:391
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:84
Gaudi::Utils::LockedChrono::LockedChrono
LockedChrono()=delete
no default constructor
Gaudi::Utils::LockedChrono::m_locker
bool & m_locker
the actual locker
Definition: LockedChrono.h:86
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:88
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:63
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:69