MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
24  {
25  public:
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 
62  {
63  public:
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 
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 
136  };
137 
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 
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 
231  double myTimeScale;
233  };
234 
235 }
236 
237 #endif
A clock which provides time steps via a time provider and with optional scaling.
Definition: lgrClock.h:184
DtTime myBaseTime
Definition: lgrClock.h:176
An implementation of DtTimeProvider which provides time in real time according to the system clock...
Definition: lgrClock.h:61
DtClock myClock
Definition: lgrClock.h:86
Relative Time, an elapsed duration of time, no implied measurement, could be seconds/cycles or ticks ...
Definition: absoluteTime.h:28
DtTime myLastTime
Definition: lgrClock.h:87
DtAbsoluteTime myLastTime
Definition: lgrClock.h:228
bool myPaused
Definition: lgrClock.h:178
DtTime myTimeSync
Definition: lgrClock.h:177
A clock which provides a continuous time via a time provider.
Definition: lgrClock.h:140
Contains MAKLogger::DtAbsoluteTime and MAKLogger::DtRelativeTime classes.
DtTimeProvider * myTimeProvider
Definition: lgrClock.h:135
DtAbsoluteTime myCurrentTime
Definition: lgrClock.h:229
double myTimeScale
Definition: lgrClock.h:231
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
An abstract class which provides time advances used by the DtLgrClock.
Definition: lgrClock.h:23
A clock that provides current time via a time provider.
Definition: lgrClock.h:92
DtTime myTimeAdvance
Definition: lgrClock.h:55
double myPausedTimeScale
Definition: lgrClock.h:232
DtRelativeTime myLastTimeStep
Definition: lgrClock.h:230
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
Contains lgrCore library definitions.

Document ID: Generated on Thu Sep 2 15:35:22 EDT 2021 from SVN revision 233992
Copyright © 2021 MAK Technologies. All Rights Reserved (www.mak.com)