The Timer class provides repetitive and single-shot timers.
More...
#include <zypp-core/zyppng/base/timer.h>
|
| ~Timer () override |
void | setSingleShot (bool singleShot=true) |
| Sets the timer to trigger only once, after it has expired once.
|
bool | singleShot () const |
uint64_t | started () const |
uint64_t | interval () const |
uint64_t | remaining () const |
uint64_t | elapsed () const |
uint64_t | expires () const |
uint64_t | expire () |
| Advances the internal clock of the timer, if the timer expires the sigExpired signal is emitted.
|
bool | isRunning () const |
void | start () |
void | start (uint64_t timeout) |
| Starts the timer, if the timer is already running this will restart the currently running timer.
|
void | stop () |
| Stops the timer if it is running. The.
|
SignalProxy< void(Timer &t)> | sigExpired () |
| This signal is always emitted when the timer expires.
|
| Base () |
virtual | ~Base () |
WeakPtr | parent () const |
void | addChild (const Base::Ptr &child) |
void | removeChild (const Ptr &child) |
const std::unordered_set< Ptr > & | children () const |
std::thread::id | threadId () const |
template<typename T> |
std::vector< std::weak_ptr< T > > | findChildren () const |
template<typename T> |
std::shared_ptr< T > | shared_this () const |
template<typename T> |
std::shared_ptr< T > | shared_this () |
template<typename T> |
std::weak_ptr< T > | weak_this () const |
template<typename T> |
std::weak_ptr< T > | weak_this () |
template<typename SenderFunc, typename ReceiverFunc> |
auto | connect (SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc) |
template<typename SenderFunc, typename ReceiverFunc, typename ... Tracker> |
std::enable_if_t< std::is_member_function_pointer_v< SenderFunc >, connection > | connectFunc (SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers) |
|
static std::shared_ptr< Timer > | create () |
| Creates a new Timer object, the timer is not started at this point.
|
static uint64_t | now () |
static uint64_t | elapsedSince (const uint64_t start) |
template<typename Obj, typename Functor> |
static decltype(auto) | make_base_slot (Obj *o, Functor &&f) |
template<typename SenderFunc, typename ReceiverFunc> |
static auto | connect (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc) |
template<typename SenderFunc, typename ReceiverFunc, typename ... Tracker> |
static auto | connectFunc (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers) |
The Timer class provides repetitive and single-shot timers.
Provides a high level interface for timers. To use it, create a Timer and connect a slot to its
- See also
- sigExpired signal.
t1->sigExpired().connect( sigc::mem_fun(this, &HandlerClass::timeout) );
t1->start(1000);
static std::shared_ptr< Timer > create()
Creates a new Timer object, the timer is not started at this point.
std::shared_ptr< Timer > Ptr
The timeout slot will now be called every second.
- Note
- The accuracy of the timer should be around 1ms , but also depends on the underlying hardware.
Definition at line 44 of file timer.h.
◆ Ptr
◆ WeakPtr
◆ ~Timer()
zyppng::Timer::~Timer |
( |
| ) |
|
|
override |
◆ Timer()
◆ create()
std::shared_ptr< Timer > zyppng::Timer::create |
( |
| ) |
|
|
static |
Creates a new Timer object, the timer is not started at this point.
Definition at line 52 of file timer.cc.
◆ setSingleShot()
void zyppng::Timer::setSingleShot |
( |
bool | singleShot = true | ) |
|
Sets the timer to trigger only once, after it has expired once.
- See also
- start needs to be called again
Definition at line 60 of file timer.cc.
◆ singleShot()
bool zyppng::Timer::singleShot |
( |
| ) |
const |
- Returns
- true if the timer is a single shot timer
Definition at line 65 of file timer.cc.
◆ now()
uint64_t zyppng::Timer::now |
( |
| ) |
|
|
static |
- Returns
- The current monotonic system time in milliseconds
Definition at line 70 of file timer.cc.
◆ elapsedSince()
uint64_t zyppng::Timer::elapsedSince |
( |
const uint64_t | start | ) |
|
|
static |
- Returns
- the time that has elapsed since the timepoint given in start
Definition at line 83 of file timer.cc.
◆ started()
uint64_t zyppng::Timer::started |
( |
| ) |
const |
- Returns
- the monotonic system time when the timer started
Definition at line 89 of file timer.cc.
◆ interval()
uint64_t zyppng::Timer::interval |
( |
| ) |
const |
- Returns
- the requested interval in milliseconds
Definition at line 94 of file timer.cc.
◆ remaining()
uint64_t zyppng::Timer::remaining |
( |
| ) |
const |
- Returns
- the remaining time until the timer expires in milliseconds
Definition at line 99 of file timer.cc.
◆ elapsed()
uint64_t zyppng::Timer::elapsed |
( |
| ) |
const |
- Returns
- the time that has elapsed since the last call to start in milliseconds
Definition at line 109 of file timer.cc.
◆ expires()
uint64_t zyppng::Timer::expires |
( |
| ) |
const |
- Returns
- the monotonic system time in ms when the timer is about to expire
Definition at line 115 of file timer.cc.
◆ expire()
uint64_t zyppng::Timer::expire |
( |
| ) |
|
Advances the internal clock of the timer, if the timer expires the sigExpired signal is emitted.
- Returns
- the monotonic system time in ms when the timer is about to expire
- Note
- There should not be any reason to call this manually, the
- See also
- EventDispatcher is taking care of that
Definition at line 125 of file timer.cc.
◆ isRunning()
bool zyppng::Timer::isRunning |
( |
| ) |
const |
- Returns
- if the timer is currently active
Definition at line 144 of file timer.cc.
◆ start() [1/2]
void zyppng::Timer::start |
( |
| ) |
|
Starts the timer, if the timer is already running this will restart the currently running timer
Definition at line 149 of file timer.cc.
◆ start() [2/2]
void zyppng::Timer::start |
( |
uint64_t | timeout | ) |
|
Starts the timer, if the timer is already running this will restart the currently running timer.
- Parameters
-
timeout | the new timeout in ms |
Definition at line 154 of file timer.cc.
◆ stop()
void zyppng::Timer::stop |
( |
| ) |
|
Stops the timer if it is running. The.
- See also
- sigExpired signal will not emit until
-
start was called again.
Definition at line 173 of file timer.cc.
◆ sigExpired()
This signal is always emitted when the timer expires.
Definition at line 120 of file timer.cc.
◆ EventDispatcher
The documentation for this class was generated from the following files: