master
a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models
Loading...
Searching...
No Matches
BasicTimer.hpp
Go to the documentation of this file.
1
/*
2
* BasicTimer.hpp
3
*
4
* Created on: Oct 23, 2013
5
* Author: Ben O'Leary (benjamin.oleary@gmail.com)
6
*/
7
8
#ifndef BASICTIMER_HPP_
9
#define BASICTIMER_HPP_
10
11
#include <cstdlib>
12
#include <sys/time.h>
13
14
namespace
BOL
15
{
16
// this is a class to do some basic timing stuff.
17
class
BasicTimer
18
{
19
public
:
20
static
double
21
secondsSince
( timeval
const
& referenceTimeval );
22
// this returns the number of seconds since referenceTimeval as a double.
23
24
BasicTimer
(
double
givenDuration
= 0.0,
25
timeval
const
*
const
startTimeval
= NULL );
26
~BasicTimer
();
27
28
void
29
setStartTime
( timeval
const
*
const
startTimeval
= NULL );
30
// if startTimeval is provided, that becomes the new reference "time = 0".
31
// if a NULL pointer is provided, then the current time is taken and saved.
32
double
33
secondsSinceStart
()
const
;
34
void
35
setDuration
(
double
const
givenDuration
);
36
bool
37
withinDuration
()
const
;
38
// this returns true if the current time is not later than givenDuration
39
// seconds after startTimeval.
40
41
42
protected
:
43
double
givenDuration
;
44
// this is a given duration in seconds for whether it is that much later
45
// than the reference start time.
46
timeval
startTimeval
;
47
// this is the reference start time which time durations are calculated
48
// from.
49
};
50
51
52
53
inline
double
54
BasicTimer::secondsSince
( timeval
const
& referenceTimeval )
55
// this returns the number of seconds since referenceTimeval as a double.
56
{
57
timeval currentTimeval;
58
gettimeofday( ¤tTimeval,
59
NULL );
60
return
( (
double
)( currentTimeval.tv_sec - referenceTimeval.tv_sec )
61
+ 0.000001 * (
double
)( currentTimeval.tv_usec
62
- referenceTimeval.tv_usec ) );
63
}
64
65
inline
void
66
BasicTimer::setStartTime
( timeval
const
*
const
startTimeval )
67
// if startTimeval is provided, that becomes the new reference "time = 0".
68
// if a NULL pointer is provided, then the current time is taken and saved.
69
{
70
if
( NULL ==
startTimeval
)
71
{
72
gettimeofday( &(this->startTimeval),
73
NULL );
74
}
75
else
76
{
77
this->startTimeval = *
startTimeval
;
78
}
79
}
80
81
inline
double
82
BasicTimer::secondsSinceStart
()
const
83
{
84
return
secondsSince
(
startTimeval
);
85
}
86
87
inline
void
88
BasicTimer::setDuration
(
double
const
givenDuration )
89
{
90
this->givenDuration =
givenDuration
;
91
}
92
93
inline
bool
94
BasicTimer::withinDuration
() const
95
// this returns true if the current time is not later than givenDuration
96
// seconds after startTimeval.
97
{
98
return
(
givenDuration
>=
secondsSinceStart
() );
99
}
100
101
}
/* namespace BOL */
102
#endif
/* BASICTIMER_HPP_ */
BOL::BasicTimer
Definition
BasicTimer.hpp:18
BOL::BasicTimer::secondsSinceStart
double secondsSinceStart() const
Definition
BasicTimer.hpp:82
BOL::BasicTimer::setDuration
void setDuration(double const givenDuration)
Definition
BasicTimer.hpp:88
BOL::BasicTimer::~BasicTimer
~BasicTimer()
Definition
BasicTimer.cpp:21
BOL::BasicTimer::withinDuration
bool withinDuration() const
Definition
BasicTimer.hpp:94
BOL::BasicTimer::secondsSince
static double secondsSince(timeval const &referenceTimeval)
Definition
BasicTimer.hpp:54
BOL::BasicTimer::setStartTime
void setStartTime(timeval const *const startTimeval=NULL)
Definition
BasicTimer.hpp:66
BOL::BasicTimer::givenDuration
double givenDuration
Definition
BasicTimer.hpp:43
BOL::BasicTimer::startTimeval
timeval startTimeval
Definition
BasicTimer.hpp:46
BOL
Definition
ArgumentParser.hpp:23
LHPC
include
BOLlib
include
BasicTimer.hpp
Generated on Tue Aug 4 2026 for $\texttt{HEPfit}$ using
1.9.8