WSF
WsfClockSource.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFCLOCKSOURCE_HPP
13#define WSFCLOCKSOURCE_HPP
14
15#include "wsf_export.h"
16
20
22{
23public:
24 WsfClockSource() = default;
25 virtual ~WsfClockSource() = default;
26
27 WsfClockSource(const WsfClockSource& aSrc) = delete;
28 WsfClockSource& operator=(const WsfClockSource& aRhs) = delete;
31
32 virtual double GetClock(double aClock) const;
33
34 virtual void ResetClock(double aAccumulatedTime = 0.0);
35
36 virtual void SetClock(double aClock);
37
38 virtual void SetClockRate(double aClockRate);
39
40 virtual double GetClockRate() const;
41
42 virtual void StartClock();
43
44 virtual void StopClock();
45
46 virtual void SetMaximumClock(double aClock);
47
51 bool IsStopped() const { return mClockPaused; }
52
53protected:
54 double mClockRate{1.0};
55 bool mClockPaused{false};
56 // Rationale for usage of this specific "magic number" value has not been identified.
57 // Usage of std::numeric_limits<double>::max() would be preferred, subject to deeper investigation
58 // of clock interactions and adequate supporting unit test coverage.
59 double mMaximumClock{1.0E300};
60};
61
62#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
virtual void StartClock()
Start the clock.
Definition WsfClockSource.cpp:76
WsfClockSource(const WsfClockSource &aSrc)=delete
virtual double GetClockRate() const
Get the clock rate multiplier.
Definition WsfClockSource.cpp:67
double mMaximumClock
Definition WsfClockSource.hpp:59
WsfClockSource & operator=(WsfClockSource &&aRhs)=delete
virtual void SetClockRate(double aClockRate)
Set the clock rate multiplier.
Definition WsfClockSource.cpp:59
bool mClockPaused
Definition WsfClockSource.hpp:55
bool IsStopped() const
Return whether the clock is paused.
Definition WsfClockSource.hpp:51
virtual double GetClock(double aClock) const
Return the current simulation clock.
Definition WsfClockSource.cpp:25
virtual void SetClock(double aClock)
Set the clock to a specified value.
Definition WsfClockSource.cpp:49
WsfClockSource()=default
double mClockRate
Definition WsfClockSource.hpp:54
WsfClockSource(WsfClockSource &&aSrc)=delete
virtual ~WsfClockSource()=default
virtual void ResetClock(double aAccumulatedTime=0.0)
Reset the simulation clock back to zero.
Definition WsfClockSource.cpp:39
WsfClockSource & operator=(const WsfClockSource &aRhs)=delete
virtual void SetMaximumClock(double aClock)
Set the clock's maximum time.
Definition WsfClockSource.cpp:94
virtual void StopClock()
Stop (pause) the clock.
Definition WsfClockSource.cpp:85
Copyrights Multiple, All Rights Reserved