21 # ifndef PASSIVETIMER_H_
22 # define PASSIVETIMER_H_
25 #include <condition_variable>
31 #include <Poco/Timespan.h>
37 typedef Poco::Timespan::TimeDiff timeout_t;
48 virtual bool checkTime()
const noexcept = 0;
49 virtual timeout_t
setTiming( timeout_t msec ) noexcept = 0;
50 virtual void reset() noexcept = 0;
52 virtual timeout_t
getCurrent()
const noexcept = 0;
55 timeout_t
getLeft( timeout_t timeout )
const noexcept;
60 virtual bool wait(timeout_t timeMS);
61 virtual void terminate() {}
64 virtual void stop() noexcept;
69 static const timeout_t
WaitUpTime = std::numeric_limits<timeout_t>::max();
72 static const Poco::Timespan millisecToPoco(
const timeout_t msec ) noexcept;
73 static const Poco::Timespan microsecToPoco(
const timeout_t usec ) noexcept;
100 virtual bool checkTime()
const noexcept
override;
101 virtual timeout_t
setTiming( timeout_t msec ) noexcept
override;
102 virtual void reset() noexcept
override;
104 virtual timeout_t
getCurrent()
const noexcept
override;
109 virtual timeout_t
getInterval()
const noexcept
override;
111 virtual void terminate() noexcept
override;
121 std::chrono::high_resolution_clock::time_point
t_start;
145 virtual bool wait(timeout_t
t_msec) noexcept
override;
146 virtual void terminate() noexcept
override;
151 std::atomic_bool terminated;
152 std::mutex m_working;
153 std::condition_variable cv_working;
158 # endif //PASSIVETIMER_H_
virtual void terminate() noexcept override
Definition: PassiveTimer.cc:89
virtual timeout_t getInterval() const noexcept override
Definition: PassiveTimer.cc:84
virtual void terminate() noexcept override
Definition: PassiveCondTimer.cc:42
virtual bool checkTime() const noexcept=0
virtual timeout_t getCurrent() const noexcept override
Definition: PassiveTimer.cc:79
virtual bool wait(timeout_t t_msec) noexcept override
Definition: PassiveCondTimer.cc:54
virtual void reset() noexcept override
Definition: PassiveTimer.cc:73
Пассивный таймер с режимом засыпания (ожидания)
Definition: PassiveTimer.h:137
timeout_t t_msec
Definition: PassiveTimer.h:114
virtual timeout_t setTiming(timeout_t msec) noexcept override
Definition: PassiveTimer.cc:59
virtual timeout_t getCurrent() const noexcept=0
virtual void reset() noexcept=0
Definition: CommonEventLoop.h:14
virtual void stop() noexcept
Definition: PassiveTimer.cc:110
virtual bool wait(timeout_t timeMS)
Definition: PassiveTimer.cc:105
static const timeout_t WaitUpTime
Definition: PassiveTimer.h:69
std::chrono::high_resolution_clock::time_point t_start
Definition: PassiveTimer.h:121
static const timeout_t MinQuantityTime
Definition: PassiveTimer.h:78
Пассивный таймер
Definition: PassiveTimer.h:92
virtual bool checkTime() const noexcept override
Definition: PassiveTimer.cc:46
std::chrono::milliseconds t_inner_msec
Definition: PassiveTimer.h:122
timeout_t getLeft(timeout_t timeout) const noexcept
Definition: PassiveTimer.cc:95
virtual timeout_t setTiming(timeout_t msec) noexcept=0
Базовый интерфейс пассивных таймеров
Definition: PassiveTimer.h:43
virtual timeout_t getInterval() const noexcept=0