MAK Data Logger API Documentation for DIS
Home
Modules
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
lgrCore
lgrClock.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 1992-2010 VT MAK
3
** All rights reserved.
4
******************************************************************************/
5
9
10
#ifndef lgrClock_H_
11
#define lgrClock_H_
12
13
#include <
lgrCore/lgrCore.h
>
14
#include <
lgrUtil/absoluteTime.h
>
15
16
#include <vlutil/vlTime.h>
17
18
namespace
MAKLogger
19
{
20
23
class
DT_DLL_LGRCORE
DtTimeProvider
24
{
25
public
:
27
DtTimeProvider
();
28
30
virtual
~
DtTimeProvider
();
31
33
virtual
void
tick() = 0;
34
36
virtual
DtTime currentTime()
const
= 0;
37
40
virtual
DtTime advancedTime()
const
= 0;
41
43
virtual
DtTime elapsedTime()
const
= 0;
44
46
virtual
DtTime timeOffset()
const
= 0;
47
};
48
52
class
DT_DLL_LGRCORE
DtWallClockTimeProvider
:
public
DtTimeProvider
53
{
54
public
:
56
DtWallClockTimeProvider
();
57
59
virtual
~
DtWallClockTimeProvider
();
60
62
virtual
void
tick();
63
65
virtual
DtTime currentTime()
const
;
66
69
virtual
DtTime advancedTime()
const
;
70
72
virtual
DtTime elapsedTime()
const
;
73
75
virtual
DtTime timeOffset()
const
;
76
77
protected
:
78
DtClock
myClock
;
79
DtTime
myTimeAdvance
;
80
DtTime
myLastTime
;
81
};
82
85
class
DT_DLL_LGRCORE
DtLgrClock
86
{
87
public
:
91
DtLgrClock
(
const
DtTimeProvider
* timeProvider);
92
94
virtual
~
DtLgrClock
();
95
97
virtual
void
tick() = 0;
98
100
virtual
DtAbsoluteTime
currentTime()
const
= 0;
101
103
virtual
void
setCurrentTime(
const
DtAbsoluteTime
& newTime) = 0;
104
106
virtual
void
stop() = 0;
107
109
virtual
void
pause() = 0;
110
112
virtual
void
unpause() = 0;
113
116
virtual
void
setTimeProvider(
const
DtTimeProvider
* timeProvider);
117
119
virtual
const
DtTimeProvider
* timeProvider()
const
;
120
121
protected
:
122
123
const
DtTimeProvider
*
myTimeProvider
;
124
};
125
128
class
DT_DLL_LGRCORE
DtLgrContinuousClock
:
public
DtLgrClock
129
{
130
public
:
134
DtLgrContinuousClock
(
const
DtTimeProvider
* timeProvider);
135
137
virtual
~
DtLgrContinuousClock
();
138
140
virtual
void
tick();
141
144
virtual
DtAbsoluteTime
currentTime()
const
;
145
147
virtual
void
setCurrentTime(
const
DtAbsoluteTime
& newTime);
148
150
virtual
void
stop();
151
153
virtual
void
pause();
154
156
virtual
void
unpause();
157
160
virtual
void
setTimeProvider(
const
DtTimeProvider
* timeProvider);
161
162
protected
:
163
164
DtTime
myBaseTime
;
165
DtTime
myTimeSync
;
166
bool
myPaused
;
167
168
};
169
172
class
DT_DLL_LGRCORE
DtLgrTimeSteppedClock
:
public
DtLgrClock
173
{
174
public
:
178
DtLgrTimeSteppedClock
(
const
DtTimeProvider
* timeProvider);
180
virtual
~
DtLgrTimeSteppedClock
();
181
184
virtual
void
tick();
185
187
virtual
DtAbsoluteTime
currentTime()
const
;
188
190
virtual
void
setCurrentTime(
const
DtAbsoluteTime
& newTime);
191
193
virtual
DtAbsoluteTime
pendingTime()
const
;
194
196
DtRelativeTime
lastTimeStep()
const
;
197
199
virtual
void
stop();
200
202
virtual
void
pause();
203
205
virtual
void
unpause();
206
209
virtual
void
setTimeScale(
double
scaleValue);
210
212
virtual
double
timeScale()
const
;
213
214
protected
:
215
216
DtAbsoluteTime
myLastTime
;
217
DtAbsoluteTime
myCurrentTime
;
218
DtRelativeTime
myLastTimeStep
;
219
double
myTimeScale
;
220
double
myPausedTimeScale
;
221
};
222
223
}
224
225
#endif
Document ID: Generated on Thu Apr 7 20:50:59 EDT 2016 from SVN revision 163818
Copyright © 2005-2012 VT MÄK. All Rights Reserved (
www.mak.com
)