DPsim
Loading...
Searching...
No Matches
DPsim::Timer Class Reference

Classes

struct  OverrunException
 

Public Types

enum  Flags : int { fail_on_overrun = 1 }
 
using Ticks = std::chrono::nanoseconds
 
using StartClock = std::chrono::system_clock
 
using IntervalClock = std::chrono::steady_clock
 
using StartTimePoint = std::chrono::time_point<StartClock, Ticks>
 
using IntervalTimePoint = std::chrono::time_point<IntervalClock, Ticks>
 

Public Member Functions

 Timer (int flags=0, CPS::Logger::Level logLevel=CPS::Logger::Level::debug)
 
void start (const StartTimePoint &startAt)
 
void start ()
 Start real-time timer.
 
void stop ()
 Stop real-time timer.
 
void sleep ()
 Suspend thread execution until next tick.
 
const long long & overruns ()
 
long long ticks ()
 
Ticks interval ()
 
void setStartTime (const StartTimePoint &start)
 
void setInterval (const Ticks &intv)
 
void setInterval (double dt)
 

Protected Types

enum  State { running , stopped }
 

Protected Attributes

enum DPsim::Timer::State mState
 
StartTimePoint mStartAt
 
IntervalTimePoint mNextTick
 
Ticks mTickInterval
 
long long mOverruns
 
long long mTicks
 
int mFlags
 
CPS::Logger::Level mLogLevel
 Timer log level.
 
CPS::Logger::Log mSLog
 Logger.
 

Detailed Description

Definition at line 18 of file Timer.h.

Member Typedef Documentation

◆ IntervalClock

using DPsim::Timer::IntervalClock = std::chrono::steady_clock

Definition at line 27 of file Timer.h.

◆ IntervalTimePoint

using DPsim::Timer::IntervalTimePoint = std::chrono::time_point<IntervalClock, Ticks>

Definition at line 30 of file Timer.h.

◆ StartClock

using DPsim::Timer::StartClock = std::chrono::system_clock

Definition at line 26 of file Timer.h.

◆ StartTimePoint

using DPsim::Timer::StartTimePoint = std::chrono::time_point<StartClock, Ticks>

Definition at line 29 of file Timer.h.

◆ Ticks

using DPsim::Timer::Ticks = std::chrono::nanoseconds

Definition at line 24 of file Timer.h.

Member Enumeration Documentation

◆ Flags

enum DPsim::Timer::Flags : int

Definition at line 52 of file Timer.h.

◆ State

enum DPsim::Timer::State
protected

Definition at line 33 of file Timer.h.

Constructor & Destructor Documentation

◆ Timer()

Timer::Timer ( int flags = 0,
CPS::Logger::Level logLevel = CPS::Logger::Level::debug )

Definition at line 23 of file Timer.cpp.

◆ ~Timer()

Timer::~Timer ( )

Definition at line 39 of file Timer.cpp.

Member Function Documentation

◆ interval()

Ticks DPsim::Timer::interval ( )
inline

Definition at line 74 of file Timer.h.

◆ overruns()

const long long & DPsim::Timer::overruns ( )
inline

Definition at line 70 of file Timer.h.

◆ setInterval() [1/2]

void DPsim::Timer::setInterval ( const Ticks & intv)
inline

Definition at line 79 of file Timer.h.

◆ setInterval() [2/2]

void DPsim::Timer::setInterval ( double dt)
inline

Definition at line 81 of file Timer.h.

◆ setStartTime()

void DPsim::Timer::setStartTime ( const StartTimePoint & start)
inline

Definition at line 77 of file Timer.h.

◆ sleep()

void Timer::sleep ( )

Suspend thread execution until next tick.

Definition at line 54 of file Timer.cpp.

◆ start()

void Timer::start ( )

Start real-time timer.

Definition at line 92 of file Timer.cpp.

◆ stop()

void Timer::stop ( )

Stop real-time timer.

Definition at line 125 of file Timer.cpp.

◆ ticks()

long long DPsim::Timer::ticks ( )
inline

Definition at line 72 of file Timer.h.

Member Data Documentation

◆ mFlags

int DPsim::Timer::mFlags
protected

Definition at line 44 of file Timer.h.

◆ mLogLevel

CPS::Logger::Level DPsim::Timer::mLogLevel
protected

Timer log level.

Definition at line 47 of file Timer.h.

◆ mNextTick

IntervalTimePoint DPsim::Timer::mNextTick
protected

Definition at line 36 of file Timer.h.

◆ mOverruns

long long DPsim::Timer::mOverruns
protected

Definition at line 42 of file Timer.h.

◆ mSLog

CPS::Logger::Log DPsim::Timer::mSLog
protected

Logger.

Definition at line 49 of file Timer.h.

◆ mStartAt

StartTimePoint DPsim::Timer::mStartAt
protected

Definition at line 35 of file Timer.h.

◆ mTickInterval

Ticks DPsim::Timer::mTickInterval
protected

Definition at line 37 of file Timer.h.

◆ mTicks

long long DPsim::Timer::mTicks
protected

Definition at line 43 of file Timer.h.


The documentation for this class was generated from the following files: