Woman, Life, Freedom


DoIP Library
Diagnostics over Internet Protocol (DoIP) C++ library
announcement_timer.h
1#ifndef ANNOUNCEMENT_TIMER_H
2#define ANNOUNCEMENT_TIMER_H
3
4#include <thread>
5#include <functional>
6#include <condition_variable>
7
8namespace DoipLib
9{
12 {
13 private:
14 const std::chrono::microseconds cSpinWait{1};
15
16 std::mutex mMutex;
17 std::unique_lock<std::mutex> mLock;
18 std::condition_variable mConditionVariable;
19 std::chrono::seconds mDelay;
20 std::chrono::seconds mInterval;
21 uint8_t mCount;
22 std::thread mThread;
23 std::function<void()> mCallback;
24
25 void announce();
26 void dispose();
27
28 public:
34 std::chrono::seconds delay,
35 std::chrono::seconds interval,
36 uint8_t count);
37 AnnouncementTimer(const AnnouncementTimer &) = delete;
38 AnnouncementTimer &operator=(const AnnouncementTimer &) = delete;
40
44 void Start(std::function<void()> &&callback);
45 };
46}
47
48#endif
A timer to announce the vehicle for a specific timer with a specific delay in between.
Definition: announcement_timer.h:12
void Start(std::function< void()> &&callback)
(Re)start the timer to tick
AnnouncementTimer(std::chrono::seconds delay, std::chrono::seconds interval, uint8_t count)
Constructor.