17 #include <HAL/Notifier.h> 18 #include <support/mutex.h> 20 #include "ErrorBase.h" 24 typedef std::function<void()> TimerEventHandler;
28 explicit Notifier(TimerEventHandler handler);
30 template <
typename Callable,
typename Arg,
typename... Args>
31 Notifier(Callable&& f, Arg&& arg, Args&&... args)
32 :
Notifier(std::bind(std::forward<Callable>(f), std::forward<Arg>(arg),
33 std::forward<Args>(args)...)) {}
38 Notifier& operator=(
const Notifier&) =
delete;
51 wpi::mutex m_processMutex;
53 std::atomic<HAL_NotifierHandle> m_notifier{0};
56 TimerEventHandler m_handler;
59 double m_expirationTime = 0;
65 bool m_periodic =
false;
Definition: RobotController.cpp:14
void Stop()
Stop timer events from occuring.
Definition: Notifier.cpp:137
Definition: Notifier.h:26
void StartPeriodic(double period)
Register for periodic event notification.
Definition: Notifier.cpp:120
void StartSingle(double delay)
Register for single event notification.
Definition: Notifier.cpp:102
Base class for most objects.
Definition: ErrorBase.h:74
Notifier(TimerEventHandler handler)
Create a Notifier for timer event notification.
Definition: Notifier.cpp:24
void SetHandler(TimerEventHandler handler)
Change the handler function.
Definition: Notifier.cpp:90
virtual ~Notifier()
Free the resources for a timer event.
Definition: Notifier.cpp:59