ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
TrigMonTimer Class Reference

#include <TrigMonTimer.h>

Collaboration diagram for TrigMonTimer:

Public Member Functions

 TrigMonTimer ()
 
 TrigMonTimer (long int tv_sec, long int tv_usec)
 
 TrigMonTimer (uint32_t encoded)
 
 ~TrigMonTimer ()
 
uint32_t getSec () const
 
uint32_t getUSec () const
 
uint32_t getMicroSec () const
 
uint32_t getEncoded () const
 
double elapsed (const TrigMonTimer &start) const
 
double getElapsed (const TrigMonTimer &start) const
 

Private Attributes

uint32_t m_encoded
 

Detailed Description

Definition at line 26 of file TrigMonTimer.h.

Constructor & Destructor Documentation

◆ TrigMonTimer() [1/3]

TrigMonTimer::TrigMonTimer ( )

Definition at line 25 of file TrigMonTimer.cxx.

26  :m_encoded(0x0)
27 {
28 }

◆ TrigMonTimer() [2/3]

TrigMonTimer::TrigMonTimer ( long int  tv_sec,
long int  tv_usec 
)

Definition at line 31 of file TrigMonTimer.cxx.

33  :m_encoded(0x0)
34 {
35  if(!(tv_sec < 0.0) && !(tv_usec < 0.0)) {
36  const uint32_t sec = static_cast<uint32_t>(tv_sec % TimerBits::moduloSec);
37  const uint32_t usec = static_cast<uint32_t>(tv_usec);
38 
39  // Yes, these are redundant checks.
40  if(sec >= TimerBits::moduloSec) {
41  REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "TrigMonTimer")
42  << "ctor error! sec=" << sec << ", " << tv_sec;
43  }
44  if(usec >= 1000000) {
45  REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "TrigMonTimer")
46  << "ctor error! usec=" << usec << ", " << tv_usec;
47  }
48 
49  m_encoded |= (sec << TimerBits::shiftSec);
50  m_encoded |= usec;
51  }
52 }

◆ TrigMonTimer() [3/3]

TrigMonTimer::TrigMonTimer ( uint32_t  encoded)
explicit

Definition at line 55 of file TrigMonTimer.cxx.

56  :m_encoded(encoded)
57 {
58 }

◆ ~TrigMonTimer()

TrigMonTimer::~TrigMonTimer ( )
inline

Definition at line 33 of file TrigMonTimer.h.

33 {}

Member Function Documentation

◆ elapsed()

double TrigMonTimer::elapsed ( const TrigMonTimer start) const
inline

Definition at line 40 of file TrigMonTimer.h.

40 { return getElapsed(start); }

◆ getElapsed()

double TrigMonTimer::getElapsed ( const TrigMonTimer start) const

Definition at line 75 of file TrigMonTimer.cxx.

76 {
77  // return elapsed time - assume time period is less than moduloSec seconds
78 
79  // get time difference in seconds
80  int secs = getSec() - start_time.getSec();
81  if(getSec() < start_time.getSec()) secs = TimerBits::moduloSec+getSec()-start_time.getSec();
82 
83  // get time difference in microseconds
84  int usecs = getMicroSec() - start_time.getMicroSec();
85 
86  return static_cast<double>(secs)*1000.0 + static_cast<double>(usecs)/1000.0;
87 }

◆ getEncoded()

uint32_t TrigMonTimer::getEncoded ( ) const
inline

Definition at line 38 of file TrigMonTimer.h.

38 { return m_encoded; }

◆ getMicroSec()

uint32_t TrigMonTimer::getMicroSec ( ) const

Definition at line 68 of file TrigMonTimer.cxx.

69 {
70  // return value in seconds
71  return static_cast<uint32_t>((m_encoded & TimerBits::maskUSec) >> TimerBits::shiftUSec);
72 }

◆ getSec()

uint32_t TrigMonTimer::getSec ( ) const

Definition at line 61 of file TrigMonTimer.cxx.

62 {
63  // return value in seconds
64  return static_cast<uint32_t>((m_encoded & TimerBits::maskSec) >> TimerBits::shiftSec);
65 }

◆ getUSec()

uint32_t TrigMonTimer::getUSec ( ) const
inline

Definition at line 36 of file TrigMonTimer.h.

36 { return getMicroSec(); }

Member Data Documentation

◆ m_encoded

uint32_t TrigMonTimer::m_encoded
private

Definition at line 45 of file TrigMonTimer.h.


The documentation for this class was generated from the following files:
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
TimerBits::maskUSec
const uint32_t maskUSec
Definition: TrigMonTimer.cxx:16
TimerBits::shiftSec
const uint32_t shiftSec
Definition: TrigMonTimer.cxx:18
TrigMonTimer::getSec
uint32_t getSec() const
Definition: TrigMonTimer.cxx:61
TrigMonTimer::getElapsed
double getElapsed(const TrigMonTimer &start) const
Definition: TrigMonTimer.cxx:75
TrigMonTimer::m_encoded
uint32_t m_encoded
Definition: TrigMonTimer.h:45
TrigMonTimer::getMicroSec
uint32_t getMicroSec() const
Definition: TrigMonTimer.cxx:68
TimerBits::maskSec
const uint32_t maskSec
Definition: TrigMonTimer.cxx:15
REPORT_MESSAGE_WITH_CONTEXT
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:345
TimerBits::moduloSec
const uint32_t moduloSec
Definition: TrigMonTimer.cxx:21
TimerBits::shiftUSec
const uint32_t shiftUSec
Definition: TrigMonTimer.cxx:19