|
cxxitimer 2.0.5
A C++ library to handle linux interval timer
|
#include <cxxitimer.hpp>
Public Member Functions | |
| ITimer (const ITimer &other)=delete | |
| copying is not possible | |
| ITimer (ITimer &&other)=delete | |
| moving is not possible | |
| ITimer & | operator= (const ITimer &other)=delete |
| copying is not possible | |
| ITimer & | operator= (ITimer &&other)=delete |
| moving is not possible | |
| virtual | ~ITimer () |
| Destroy the timer instance. | |
| void | start () |
| start timer | |
| void | stop () |
| stop timer | |
| void | set_speed_factor (double factor) |
| set speed factor | |
| void | set_interval (const timeval &interval) |
| set interval (timeval) | |
| void | set_interval (double interval) |
| set interval (double) | |
| void | set_interval_value (const timeval &interval, const timeval &value) |
| set interval and value | |
| void | set_interval_value (double interval, double value) |
| set interval and value | |
| void | set_speed_to_normal () |
| set speed to normal | |
| void | to_fstream (std::ofstream &fstream) const |
| write to binary file stream | |
| void | from_fstream (std::ifstream &fstream) |
| read from binary filestream | |
| timeval | get_timer_value () const |
| get timer value | |
| bool | is_running () const noexcept |
| check if timer is running | |
Protected Member Functions | |
| ITimer (int type, const timeval &interval={.tv_sec=1,.tv_usec=0}) noexcept | |
| ITimer (int type, const timeval &interval, const timeval &value) noexcept | |
| ITimer (int type, double interval) noexcept | |
| ITimer (int type, double interval, double value) noexcept | |
Private Member Functions | |
| virtual void | adjust_speed (double new_factor) |
Private Attributes | |
| timeval | timer_value |
| timeval | timer_interval |
| int | type |
| double | speed_factor |
| speed adjustment factor | |
| bool | running |
abstract class ITimer
Definition at line 16 of file cxxitimer.hpp.
|
explicitprotectednoexcept |
Definition at line 26 of file cxxitimer.cpp.
References running, speed_factor, timer_interval, timer_value, and type.
Referenced by cxxitimer::ITimer_Prof::ITimer_Prof(), cxxitimer::ITimer_Real::ITimer_Real(), and cxxitimer::ITimer_Virtual::ITimer_Virtual().
|
protectednoexcept |
Definition at line 42 of file cxxitimer.cpp.
References running, speed_factor, timer_interval, timer_value, and type.
Referenced by cxxitimer::ITimer_Prof::ITimer_Prof(), cxxitimer::ITimer_Real::ITimer_Real(), and cxxitimer::ITimer_Virtual::ITimer_Virtual().
|
protectednoexcept |
Definition at line 34 of file cxxitimer.cpp.
References cxxitimer::double_to_timeval(), running, speed_factor, timer_interval, timer_value, and type.
Referenced by cxxitimer::ITimer_Prof::ITimer_Prof(), cxxitimer::ITimer_Real::ITimer_Real(), and cxxitimer::ITimer_Virtual::ITimer_Virtual().
|
protectednoexcept |
Definition at line 50 of file cxxitimer.cpp.
References cxxitimer::double_to_timeval(), running, speed_factor, timer_interval, timer_value, and type.
Referenced by cxxitimer::ITimer_Prof::ITimer_Prof(), cxxitimer::ITimer_Real::ITimer_Real(), and cxxitimer::ITimer_Virtual::ITimer_Virtual().
|
delete |
copying is not possible
|
delete |
moving is not possible
|
virtual |
Destroy the timer instance.
Timer is stopped if running, however, the timer should be stopped beforehand if possible. If the timer is still running and the call of stop() fails, the process will be terminated.
Definition at line 59 of file cxxitimer.cpp.
References running, and stop().
|
privatevirtual |
Definition at line 71 of file cxxitimer.cpp.
References cxxitimer::operator*=(), cxxitimer::operator/(), running, speed_factor, cxxitimer::STOP_TIMER, timer_interval, and type.
Referenced by set_speed_factor(), and set_speed_to_normal().
| void cxxitimer::ITimer::from_fstream | ( | std::ifstream & | fstream | ) |
read from binary filestream
| fstream | file stream to read from |
| std::logic_error | timer is running |
Definition at line 180 of file cxxitimer.cpp.
References running, timer_interval, and timer_value.
| timeval cxxitimer::ITimer::get_timer_value | ( | ) | const |
get timer value
returns the stored timer value if the timer is stopped or the actual timer value if running
Definition at line 189 of file cxxitimer.cpp.
References cxxitimer::operator*(), running, speed_factor, timer_value, and type.
|
inlinenoexcept |
check if timer is running
Definition at line 175 of file cxxitimer.hpp.
References running.
|
inline |
set interval (timeval)
only allowed if the timer is stopped! set the timer value to the same time
| interval | timer interval |
| std::logic_error | timer is started |
Definition at line 109 of file cxxitimer.hpp.
References set_interval_value().
|
inline |
set interval (double)
only allowed if the timer is stopped! set the timer value to the same time
| interval | timer interval (seconds) |
| std::logic_error | timer is started |
Definition at line 119 of file cxxitimer.hpp.
References set_interval_value().
| void cxxitimer::ITimer::set_interval_value | ( | const timeval & | interval, |
| const timeval & | value | ||
| ) |
set interval and value
only allowed if the timer is stopped
| interval | timer interval |
| value | timer value |
| std::logic_error | timer is started |
Definition at line 146 of file cxxitimer.cpp.
References running, timer_interval, and timer_value.
Referenced by set_interval(), and set_interval_value().
| void cxxitimer::ITimer::set_interval_value | ( | double | interval, |
| double | value | ||
| ) |
set interval and value
only allowed if the timer is stopped
| interval | timer interval (seconds) |
| value | timer value (seconds) |
| std::logic_error | timer is started |
Definition at line 153 of file cxxitimer.cpp.
References cxxitimer::double_to_timeval(), and set_interval_value().
Referenced by set_interval().
| void cxxitimer::ITimer::set_speed_factor | ( | double | factor | ) |
set speed factor
is applied directly, even if the timer is running
| factor | speed factor |
| std::invalid_argument | negative values or nan/inf |
| std::system_error | call of setitimer failed |
Definition at line 135 of file cxxitimer.cpp.
References adjust_speed(), running, and speed_factor.
| void cxxitimer::ITimer::set_speed_to_normal | ( | ) |
set speed to normal
like calling set_speed_factor with 1.0
| std::system_error | call of setitimer failed |
Definition at line 157 of file cxxitimer.cpp.
References adjust_speed(), running, and speed_factor.
| void cxxitimer::ITimer::start | ( | ) |
start timer
| std::logic_error | timer already started |
| std::runtime_error | invalid timer values due to a too small speed factor |
| std::system_error | call of setitimer failed |
Definition at line 96 of file cxxitimer.cpp.
References cxxitimer::operator/(), running, speed_factor, timer_interval, timer_value, and type.
| void cxxitimer::ITimer::stop | ( | ) |
stop timer
| std::logic_error | timer already stopped |
| std::system_error | call of setitimer failed |
Definition at line 121 of file cxxitimer.cpp.
References cxxitimer::operator*(), running, speed_factor, cxxitimer::STOP_TIMER, timer_value, and type.
Referenced by ~ITimer().
| void cxxitimer::ITimer::to_fstream | ( | std::ofstream & | fstream | ) | const |
write to binary file stream
writes interval and value to file stream. type and speed factor is not stored!
| fstream | file stream to write to |
| std::system_error | call of getitimer failed |
Definition at line 164 of file cxxitimer.cpp.
References cxxitimer::operator*=(), running, speed_factor, timer_interval, timer_value, and type.
|
private |
Definition at line 37 of file cxxitimer.hpp.
Referenced by adjust_speed(), from_fstream(), get_timer_value(), is_running(), ITimer(), ITimer(), ITimer(), ITimer(), set_interval_value(), set_speed_factor(), set_speed_to_normal(), start(), stop(), to_fstream(), and ~ITimer().
|
private |
speed adjustment factor
Definition at line 34 of file cxxitimer.hpp.
Referenced by adjust_speed(), get_timer_value(), ITimer(), ITimer(), ITimer(), ITimer(), set_speed_factor(), set_speed_to_normal(), start(), stop(), and to_fstream().
|
private |
Definition at line 22 of file cxxitimer.hpp.
Referenced by adjust_speed(), from_fstream(), ITimer(), ITimer(), ITimer(), ITimer(), set_interval_value(), start(), and to_fstream().
|
private |
Definition at line 19 of file cxxitimer.hpp.
Referenced by from_fstream(), get_timer_value(), ITimer(), ITimer(), ITimer(), ITimer(), set_interval_value(), start(), stop(), and to_fstream().
|
private |
Definition at line 25 of file cxxitimer.hpp.
Referenced by adjust_speed(), get_timer_value(), ITimer(), ITimer(), ITimer(), ITimer(), start(), stop(), and to_fstream().