12#include "wpi/units/time.hpp"
42 std::function<void()>
func;
58 Callback(std::function<
void()>
func, std::chrono::microseconds startTime,
59 std::chrono::microseconds
period,
60 std::chrono::microseconds offset);
70 Callback(std::function<
void()>
func, std::chrono::microseconds startTime,
71 wpi::units::second_t
period, wpi::units::second_t offset);
80 Callback(std::function<
void()>
func, std::chrono::microseconds startTime,
81 wpi::units::second_t
period);
99 void Add(std::function<
void()> func, std::chrono::microseconds startTime,
100 std::chrono::microseconds period);
110 void Add(std::function<
void()> func, std::chrono::microseconds startTime,
111 std::chrono::microseconds period, std::chrono::microseconds offset);
121 void Add(std::function<
void()> func, std::chrono::microseconds startTime,
122 wpi::units::second_t period);
133 void Add(std::function<
void()> func, std::chrono::microseconds startTime,
134 wpi::units::second_t period, wpi::units::second_t offset);
203 wpi::units::microsecond_t m_loopStartTime{0};
A periodic callback with scheduling metadata.
Definition PeriodicPriorityQueue.hpp:39
bool operator==(const Callback &rhs) const
Definition PeriodicPriorityQueue.hpp:87
Callback(std::function< void()> func, std::chrono::microseconds startTime, wpi::units::second_t period, wpi::units::second_t offset)
Construct a callback container using units-based period and offset.
std::function< void()> func
The function to execute when the callback fires.
Definition PeriodicPriorityQueue.hpp:42
Callback(std::function< void()> func, std::chrono::microseconds startTime, std::chrono::microseconds period, std::chrono::microseconds offset)
Construct a callback container.
std::chrono::microseconds expirationTime
The next scheduled execution time in FPGA timestamp microseconds.
Definition PeriodicPriorityQueue.hpp:48
Callback(std::function< void()> func, std::chrono::microseconds startTime, wpi::units::second_t period)
Construct a callback container using units-based period.
bool operator>(const Callback &rhs) const
Definition PeriodicPriorityQueue.hpp:83
std::chrono::microseconds period
The period at which to run the callback.
Definition PeriodicPriorityQueue.hpp:45
A priority queue for scheduling periodic callbacks based on their next execution time.
Definition PeriodicPriorityQueue.hpp:30
void Add(std::function< void()> func, std::chrono::microseconds startTime, std::chrono::microseconds period)
Adds a periodic callback to the queue.
bool Remove(const Callback &callback)
Removes a specific callback from the queue.
bool RunCallbacks(HAL_NotifierHandle notifier)
Executes all callbacks that are due, then waits for the next callback's scheduled time.
void Add(std::function< void()> func, std::chrono::microseconds startTime, wpi::units::second_t period, wpi::units::second_t offset)
Adds a periodic callback to the queue.
void Add(Callback callback)
Adds a pre-constructed callback to the queue.
void Add(std::function< void()> func, std::chrono::microseconds startTime, std::chrono::microseconds period, std::chrono::microseconds offset)
Adds a periodic callback to the queue.
wpi::util::priority_queue< Callback, std::vector< Callback >, std::greater<> > & GetQueue()
Returns the underlying priority queue.
Definition PeriodicPriorityQueue.hpp:183
void Clear()
Removes all callbacks from the queue.
void Add(std::function< void()> func, std::chrono::microseconds startTime, wpi::units::second_t period)
Adds a periodic callback to the queue.
wpi::units::microsecond_t GetLoopStartTime() const
Return the system clock time in microseconds for the start of the current periodic loop.
Definition PeriodicPriorityQueue.hpp:197
This class is the same as std::priority_queue with two changes:
Definition priority_queue.hpp:26
HAL_Handle HAL_NotifierHandle
Definition Types.h:37
Definition DriverStationModeThread.hpp:13