MAK Data Logger API Documentation for DIS
 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 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 
53  {
54  public:
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 
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 
124  };
125 
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 
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 
219  double myTimeScale;
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)