BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
WallclockTimer Class Reference

Description

A timer for measuring real (wall-clock) time spent between 'start' and 'stop' commands.

Definition at line 29 of file WallclockTimer.h.

Collaboration diagram for WallclockTimer:
[legend]

Public Member Functions

 WallclockTimer ()
 
 ~WallclockTimer ()
 
double runTime () const
 Returns run time in sec. More...
 
void start ()
 
void stop ()
 

Private Attributes

std::unique_ptr< WallclockTimerState > m_state
 

Constructor & Destructor Documentation

◆ WallclockTimer()

WallclockTimer::WallclockTimer ( )

Definition at line 29 of file WallclockTimer.cpp.

30  : m_state(new WallclockTimerState)
31 {
32 }
std::unique_ptr< WallclockTimerState > m_state

◆ ~WallclockTimer()

WallclockTimer::~WallclockTimer ( )
default

Member Function Documentation

◆ runTime()

double WallclockTimer::runTime ( ) const

Returns run time in sec.

Definition at line 47 of file WallclockTimer.cpp.

48 {
49  duration_unit diff =
50  m_state->m_is_running
51  ? std::chrono::duration_cast<duration_unit>(clock_used::now() - m_state->m_start_time)
52  : std::chrono::duration_cast<duration_unit>(m_state->m_end_time
53  - m_state->m_start_time);
54 
55  return (double)diff.count();
56 }
std::chrono::seconds duration_unit

References m_state.

Referenced by FitPrintService::fitResultString(), mumufit::Kernel::minimize(), and FitPrintService::wallTimeString().

◆ start()

void WallclockTimer::start ( )

Definition at line 35 of file WallclockTimer.cpp.

36 {
37  m_state->m_is_running = true;
38  m_state->m_start_time = clock_used::now();
39 }

References m_state.

Referenced by mumufit::Kernel::minimize(), FitPrintService::print(), and FitPrintService::wallTimeString().

◆ stop()

void WallclockTimer::stop ( )

Definition at line 41 of file WallclockTimer.cpp.

42 {
43  m_state->m_is_running = false;
44  m_state->m_end_time = clock_used::now();
45 }

References m_state.

Referenced by FitPrintService::fitResultString(), mumufit::Kernel::minimize(), and FitPrintService::wallTimeString().

Member Data Documentation

◆ m_state

std::unique_ptr<WallclockTimerState> WallclockTimer::m_state
private

Definition at line 41 of file WallclockTimer.h.

Referenced by runTime(), start(), and stop().


The documentation for this class was generated from the following files: