-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathElapsedTimer.cpp
76 lines (62 loc) · 1.34 KB
/
ElapsedTimer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include"BaseLib/ElapsedTimer.h"
#include "Utility.h"
namespace BaseLib {
ElapsedTimer::ElapsedTimer(int64 intervalMsecs)
: startTime_(Timestamp::Now())
, intervalTime_(Duration::FromMilliseconds(intervalMsecs))
, totalTime_(Duration::Zero())
{ }
ElapsedTimer::ElapsedTimer(Duration interval)
: startTime_(Timestamp::Now())
, intervalTime_(interval)
, totalTime_(Duration::Zero())
{ }
ElapsedTimer::~ElapsedTimer()
{ }
void ElapsedTimer::Start(Duration interval)
{
startTime_ = Timestamp::Now();
totalTime_ = Duration::Zero();
intervalTime_ = interval;
}
void ElapsedTimer::Restart()
{
Start(intervalTime_);
}
bool ElapsedTimer::HasExpired() const
{
return elapsed() >= intervalTime_ + totalTime_;
}
void ElapsedTimer::Update()
{
if(elapsed() >= intervalTime_ + totalTime_)
{
totalTime_ = elapsed();
}
}
bool ElapsedTimer::CheckHasExpiredAndUpdate()
{
if(elapsed() >= intervalTime_ + totalTime_)
{
totalTime_ = elapsed();
return true;
}
return false;
}
Duration ElapsedTimer::Elapsed() const
{
return elapsed();
}
Duration ElapsedTimer::Remaining() const
{
return intervalTime_ - elapsed();
}
Duration ElapsedTimer::IntervalMs() const
{
return intervalTime_;
}
Duration ElapsedTimer::elapsed() const
{
return Timestamp::Now() - startTime_;
}
}