MAK Data Logger API Documentation for HLA
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
void
resetTick() = 0;
37
39
virtual
DtTime currentTime()
const
= 0;
40
43
virtual
DtTime timeAdvanced()
const
;
44
46
virtual
void
setTimeAdvanced(DtTime timeValue);
47
49
virtual
DtTime elapsedTime()
const
= 0;
50
52
virtual
DtTime timeOffset()
const
= 0;
53
54
protected
:
55
DtTime
myTimeAdvance
;
56
};
57
61
class
DT_DLL_LGRCORE
DtWallClockTimeProvider
:
public
DtTimeProvider
62
{
63
public
:
65
DtWallClockTimeProvider
();
66
68
virtual
~
DtWallClockTimeProvider
();
69
71
virtual
void
tick();
72
74
virtual
void
resetTick();
75
77
virtual
DtTime currentTime()
const
;
78
80
virtual
DtTime elapsedTime()
const
;
81
83
virtual
DtTime timeOffset()
const
;
84
85
protected
:
86
DtClock
myClock
;
87
DtTime
myLastTime
;
88
};
89
92
class
DT_DLL_LGRCORE
DtLgrClock
93
{
94
public
:
98
DtLgrClock
(
DtTimeProvider
* timeProvider);
99
101
virtual
~
DtLgrClock
();
102
104
virtual
void
tick() = 0;
105
107
virtual
DtAbsoluteTime
currentTime()
const
= 0;
108
110
virtual
void
setCurrentTime(
const
DtAbsoluteTime
& newTime) = 0;
111
113
virtual
void
stop() = 0;
114
116
virtual
void
pause() = 0;
117
119
virtual
void
unpause() = 0;
120
123
virtual
void
setTimeProvider(
DtTimeProvider
* timeProvider);
124
126
virtual
const
DtTimeProvider
* timeProvider()
const
;
127
128
protected
:
129
131
virtual
DtTimeProvider
* timeProvider();
132
133
protected
:
134
135
DtTimeProvider
*
myTimeProvider
;
136
};
137
140
class
DT_DLL_LGRCORE
DtLgrContinuousClock
:
public
DtLgrClock
141
{
142
public
:
146
DtLgrContinuousClock
(
DtTimeProvider
* timeProvider);
147
149
virtual
~
DtLgrContinuousClock
();
150
152
virtual
void
tick();
153
156
virtual
DtAbsoluteTime
currentTime()
const
;
157
159
virtual
void
setCurrentTime(
const
DtAbsoluteTime
& newTime);
160
162
virtual
void
stop();
163
165
virtual
void
pause();
166
168
virtual
void
unpause();
169
172
virtual
void
setTimeProvider(
DtTimeProvider
* timeProvider);
173
174
protected
:
175
176
DtTime
myBaseTime
;
177
DtTime
myTimeSync
;
178
bool
myPaused
;
179
180
};
181
184
class
DT_DLL_LGRCORE
DtLgrTimeSteppedClock
:
public
DtLgrClock
185
{
186
public
:
190
DtLgrTimeSteppedClock
(
DtTimeProvider
* timeProvider);
192
virtual
~
DtLgrTimeSteppedClock
();
193
196
virtual
void
tick();
197
199
virtual
DtAbsoluteTime
currentTime()
const
;
200
202
virtual
void
setCurrentTime(
const
DtAbsoluteTime
& newTime);
203
205
virtual
DtAbsoluteTime
pendingTime()
const
;
206
208
DtRelativeTime
lastTimeStep()
const
;
209
211
virtual
void
stop();
212
214
virtual
void
pause();
215
217
virtual
void
unpause();
218
221
virtual
void
setTimeScale(
double
scaleValue);
222
224
virtual
double
timeScale()
const
;
225
226
protected
:
227
228
DtAbsoluteTime
myLastTime
;
229
DtAbsoluteTime
myCurrentTime
;
230
DtRelativeTime
myLastTimeStep
;
231
double
myTimeScale
;
232
double
myPausedTimeScale
;
233
};
234
235
}
236
237
#endif
Document ID: Generated on Wed Jun 5 18:45:18 EDT 2019 from SVN revision 198968
Copyright © 2019 VT MAK. All Rights Reserved (
www.mak.com
)