The Pedigree Project
0.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
system
kernel
time
Stopwatch.cc
1
/*
2
* Copyright (c) 2008-2014, Pedigree Developers
3
*
4
* Please see the CONTRIB file in the root of the source tree for a full
5
* list of contributors.
6
*
7
* Permission to use, copy, modify, and distribute this software for any
8
* purpose with or without fee is hereby granted, provided that the above
9
* copyright notice and this permission notice appear in all copies.
10
*
11
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
*/
19
20
#include "pedigree/kernel/time/Stopwatch.h"
21
#include "pedigree/kernel/time/Time.h"
22
#include "pedigree/kernel/utilities/assert.h"
23
24
namespace
Time
25
{
26
Stopwatch::Stopwatch(
bool
startRunning)
27
: m_Value(0), m_StartValue(), m_bRunning(startRunning)
28
{
29
reset();
30
31
if
(startRunning)
32
{
33
start();
34
}
35
}
36
37
Stopwatch::~Stopwatch()
38
{
39
}
40
41
void
Stopwatch::start()
42
{
43
m_bRunning =
true
;
44
m_StartValue = Time::getTicks();
45
}
46
47
void
Stopwatch::stop()
48
{
49
assert
(m_bRunning);
50
m_bRunning =
false
;
51
Timestamp
now = Time::getTicks();
52
m_Value += now - m_StartValue;
53
}
54
55
void
Stopwatch::reset()
56
{
57
m_Value = 0;
58
m_StartValue = 0;
59
m_bRunning =
false
;
60
}
61
62
Timestamp
Stopwatch::value()
63
{
64
return
m_Value;
65
}
66
}
// namespace Time
assert
#define assert(x)
Definition:
assert.h:37
Timestamp
Definition:
fat.h:143
Time
Definition:
Stopwatch.h:25
Generated on Fri Jan 24 2020 06:49:08 for The Pedigree Project by
1.8.11