lgrClock.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00009 
00010 #ifndef lgrClock_H_
00011 #define lgrClock_H_
00012 
00013 #include "lgrCore.h"
00014 #include "absoluteTime.h"
00015 
00016 #include <vlutil/vlTime.h>
00017 
00018 namespace MAKLogger
00019 {
00020 
00024    class DT_DLL_LGRCORE DtTimeProvider
00025    {
00026    public:
00028       DtTimeProvider();
00029 
00031       virtual ~DtTimeProvider();
00032 
00034       virtual void tick() = 0;
00035 
00038       virtual double advancedTime() const = 0;
00039 
00041       virtual double elapsedTime() const = 0;
00042 
00044       virtual double timeOffset() const = 0;
00045    };
00046 
00050    class DT_DLL_LGRCORE DtWallClockTimeProvider : public DtTimeProvider
00051    {
00052    public:
00054       DtWallClockTimeProvider();
00055 
00057       virtual ~DtWallClockTimeProvider();
00058 
00061       virtual void tick();
00062 
00065       virtual double advancedTime() const;
00066 
00068       virtual double elapsedTime() const;
00069 
00071       virtual double timeOffset() const;
00072 
00073    protected:
00074       DtClock myClock;
00075       double myTimeAdvance;
00076       double myLastAbsTime;
00077    };
00078 
00082    class DT_DLL_LGRCORE DtLgrClock
00083    {
00084    public:
00088       DtLgrClock(const DtTimeProvider* timeProvider);
00090       virtual ~DtLgrClock();
00091 
00094       virtual void tick();
00095 
00098       DtAbsoluteTime currentTime() const;
00099 
00101       void setCurrentTime(const DtAbsoluteTime& newTime);
00102 
00104       virtual DtAbsoluteTime pendingTime() const;
00105 
00107       DtRelativeTime lastTimeStep() const;
00108 
00110       virtual void stop();
00111 
00113       virtual void pause();
00114 
00117       virtual void   setTimeScale(double scaleValue);
00118 
00120       virtual double timeScale() const;
00121 
00124       virtual void setTimeProvider(const DtTimeProvider* timeProvider);
00125 
00127       virtual const DtTimeProvider* timeProvider() const;
00128 
00129    protected:
00130 
00131       const DtTimeProvider* myTimeProvider;
00132 
00133       DtAbsoluteTime myLastTime;
00134       DtAbsoluteTime myCurrentTime;
00135       DtRelativeTime myLastTimeStep;
00136 
00137       double         myTimeScale;
00138    };
00139 
00140 }
00141 
00142 #endif

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)