libdoip  0.1.0
DoIP (Diagnostics over Internet Protocol) ISO 13400 C++17 Library
doip::TimerManager< TimerIdType > Class Template Reference

#include <TimerManager.h>

Inheritance diagram for doip::TimerManager< TimerIdType >:

Classes

struct  TimerEntry
 

Public Types

using TimerId = TimerIdType
 

Public Member Functions

 TimerManager ()
 
 ~TimerManager ()
 
std::optional< TimerIdaddTimer (TimerId id, std::chrono::milliseconds duration, std::function< void(TimerIdType)> callback, bool periodic=false)
 Add a timer. More...
 
bool removeTimer (TimerId id)
 Removes the timer. More...
 
bool restartTimer (TimerId id)
 
bool updateTimer (TimerId id, std::chrono::milliseconds newDuration)
 Updates a timer duration. More...
 
bool disableTimer (TimerId id)
 Disables a timer. More...
 
bool enableTimer (TimerId id)
 Enables a disabled timer. More...
 
bool resetTimer (TimerId id)
 Restarts a timer (disables and enables it). More...
 
void stopAll ()
 Stops all timers and clears the timer list. More...
 
bool hasTimer (TimerId id) const
 Check if specified timer exists. More...
 
size_t timerCount () const
 The number of timers. More...
 
void stop ()
 Stops all timers and the timer manager. More...
 

Detailed Description

template<typename TimerIdType = uint8_t>
class doip::TimerManager< TimerIdType >

Definition at line 17 of file TimerManager.h.

Member Typedef Documentation

◆ TimerId

template<typename TimerIdType = uint8_t>
using doip::TimerManager< TimerIdType >::TimerId = TimerIdType

Definition at line 19 of file TimerManager.h.

Constructor & Destructor Documentation

◆ TimerManager()

template<typename TimerIdType = uint8_t>
doip::TimerManager< TimerIdType >::TimerManager ( )
inline

Definition at line 30 of file TimerManager.h.

◆ ~TimerManager()

template<typename TimerIdType = uint8_t>
doip::TimerManager< TimerIdType >::~TimerManager ( )
inline

Definition at line 34 of file TimerManager.h.

References doip::TimerManager< TimerIdType >::stop().

Member Function Documentation

◆ addTimer()

template<typename TimerIdType = uint8_t>
std::optional<TimerId> doip::TimerManager< TimerIdType >::addTimer ( TimerId  id,
std::chrono::milliseconds  duration,
std::function< void(TimerIdType)>  callback,
bool  periodic = false 
)
inline

Add a timer.

Parameters
durationthe timer duration in ms
callbackthe callback function to invoke when timer expired. Must not be null.
periodictrue, if timer should start again when expired
Returns
std::optional<TimerId>

Definition at line 47 of file TimerManager.h.

References doip::TimerManager< TimerIdType >::TimerEntry::callback, doip::TimerManager< TimerIdType >::TimerEntry::enabled, doip::TimerManager< TimerIdType >::TimerEntry::expiry, doip::TimerManager< TimerIdType >::TimerEntry::id, doip::TimerManager< TimerIdType >::TimerEntry::interval, and doip::TimerManager< TimerIdType >::TimerEntry::periodic.

◆ disableTimer()

template<typename TimerIdType = uint8_t>
bool doip::TimerManager< TimerIdType >::disableTimer ( TimerId  id)
inline

Disables a timer.

Parameters
idthe id of the timer
Returns
true timer was disabled
false timer with given id does not exist

Definition at line 126 of file TimerManager.h.

Referenced by doip::TimerManager< TimerIdType >::resetTimer().

◆ enableTimer()

template<typename TimerIdType = uint8_t>
bool doip::TimerManager< TimerIdType >::enableTimer ( TimerId  id)
inline

Enables a disabled timer.

If the specified timer is not disabled, the function has no effect.

Parameters
idthe id of the timer
Returns
true timer was enabled
false timer with given id does not exist

Definition at line 145 of file TimerManager.h.

Referenced by doip::TimerManager< TimerIdType >::resetTimer().

◆ hasTimer()

template<typename TimerIdType = uint8_t>
bool doip::TimerManager< TimerIdType >::hasTimer ( TimerId  id) const
inline

Check if specified timer exists.

Parameters
idthe id of the timer
Returns
true timer exists
false timer with given id does not exist

Definition at line 187 of file TimerManager.h.

◆ removeTimer()

template<typename TimerIdType = uint8_t>
bool doip::TimerManager< TimerIdType >::removeTimer ( TimerId  id)
inline

Removes the timer.

Parameters
idthe id of the timer
Returns
true timer was removed
false timer with given id does not exist

Definition at line 78 of file TimerManager.h.

◆ resetTimer()

template<typename TimerIdType = uint8_t>
bool doip::TimerManager< TimerIdType >::resetTimer ( TimerId  id)
inline

Restarts a timer (disables and enables it).

Parameters
idthe id of the timer
Returns
true timer was restarted
false timer with given id does not exist

Definition at line 167 of file TimerManager.h.

References doip::TimerManager< TimerIdType >::disableTimer(), and doip::TimerManager< TimerIdType >::enableTimer().

◆ restartTimer()

template<typename TimerIdType = uint8_t>
bool doip::TimerManager< TimerIdType >::restartTimer ( TimerId  id)
inline

Definition at line 84 of file TimerManager.h.

◆ stop()

template<typename TimerIdType = uint8_t>
void doip::TimerManager< TimerIdType >::stop ( )
inline

Stops all timers and the timer manager.

Definition at line 206 of file TimerManager.h.

Referenced by doip::TimerManager< TimerIdType >::~TimerManager().

◆ stopAll()

template<typename TimerIdType = uint8_t>
void doip::TimerManager< TimerIdType >::stopAll ( )
inline

Stops all timers and clears the timer list.

Definition at line 174 of file TimerManager.h.

◆ timerCount()

template<typename TimerIdType = uint8_t>
size_t doip::TimerManager< TimerIdType >::timerCount ( ) const
inline

The number of timers.

Returns
size_t number of timers.

Definition at line 198 of file TimerManager.h.

◆ updateTimer()

template<typename TimerIdType = uint8_t>
bool doip::TimerManager< TimerIdType >::updateTimer ( TimerId  id,
std::chrono::milliseconds  newDuration 
)
inline

Updates a timer duration.

The current timer is stopped and then started with the new duration.

Parameters
idthe id of the timer
newDurationthe new duration in ms
Returns
true timer was updated
false timer with given id does not exist

Definition at line 106 of file TimerManager.h.


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