17 #ifndef UNITYUTIL_TIMER_H
18 #define UNITYUTIL_TIMER_H
20 #include "ElapsedTimer.h"
33 AbstractTimer(QObject *parent) : QObject(parent), m_isRunning(
false) {}
34 virtual int interval()
const = 0;
35 virtual void setInterval(
int msecs) = 0;
36 virtual void start() { m_isRunning =
true; }
37 virtual void stop() { m_isRunning =
false; }
38 bool isRunning()
const {
return m_isRunning; }
39 virtual bool isSingleShot()
const = 0;
40 virtual void setSingleShot(
bool value) = 0;
52 Timer(QObject *parent =
nullptr);
54 int interval()
const override;
55 void setInterval(
int msecs)
override;
56 void start()
override;
58 bool isSingleShot()
const override;
59 void setSingleShot(
bool value)
override;
64 class AbstractTimerFactory
67 virtual ~AbstractTimerFactory() {}
68 virtual AbstractTimer *create(QObject *parent =
nullptr) = 0;
71 class TimerFactory :
public AbstractTimerFactory
74 AbstractTimer *create(QObject *parent =
nullptr)
override {
return new Timer(parent); }
79 #endif // UNITYUTIL_TIMER_H