semf
timebase.cpp
Go to the documentation of this file.
1
12
13namespace semf
14{
15TimeBase::TimeBase(app::Timer& timer, bool enable)
16: m_enabled(enable),
17 m_timer(&timer)
18{
19 m_timer->timeout.connect(m_countSlot);
20}
21
22void TimeBase::add(TickReceiver& tickReceiver)
23{
24 m_tickReceiverList.pushBack(tickReceiver);
25}
26
27void TimeBase::remove(TickReceiver& tickReceiver)
28{
29 m_tickReceiverList.erase(LinkedList<TickReceiver>::Iterator(&tickReceiver));
30}
31
32void TimeBase::enable(bool enable)
33{
34 m_enabled = enable;
35}
36
37void TimeBase::disable(bool disable)
38{
39 m_enabled = !disable;
40}
41
43{
44 return m_enabled;
45}
46
47void TimeBase::count()
48{
49 if (m_enabled && !m_tickReceiverList.empty())
50 {
51 for (auto& it : m_tickReceiverList)
52 {
53 SEMF_INFO("tick");
54 it.tick();
55 }
56 }
57}
58} /* namespace semf */
Implementation of a bidirectional iterator for LinkedList.
Definition: linkedlist.h:116
void connect(SlotBase< Arguments... > &slot)
Connect a method to the signal.
Definition: signal.h:94
Interface for all classes receiving ticks like DigitalInPolling or SoftwareTimer.
Definition: tickreceiver.h:29
void enable(bool enable=true) override
Enables the TimeBase.
Definition: timebase.cpp:32
void remove(TickReceiver &tickReceiver) override
Removes e.g. a timer from this TimeBase.
Definition: timebase.cpp:27
TimeBase(app::Timer &timer, bool enable=false)
Constructor.
Definition: timebase.cpp:15
void disable(bool disable=true) override
Disables the TimeBase.
Definition: timebase.cpp:37
void add(TickReceiver &tickReceiver) override
Adds e.g. a timer to this TimeBase.
Definition: timebase.cpp:22
bool isEnabled() const override
Returns if the TimeBase is enabled.
Definition: timebase.cpp:42
Class for using timer hardware.
Definition: timer.h:24
Signal timeout
Definition: timer.h:36
#define SEMF_INFO(...)
Definition: debug.h:41