WPILibC++ 2023.4.3-108-ge5452e3
|
#include <wpinet/uv/Timer.h>
Public Types | |
using | Time = std::chrono::duration< uint64_t, std::milli > |
Public Types inherited from wpi::uv::Handle | |
using | Type = uv_handle_type |
Public Member Functions | |
Timer (const private_init &) | |
~Timer () noexcept override=default | |
void | Start (Time timeout, Time repeat=Time{0}) |
Start the timer. More... | |
void | Stop () |
Stop the timer. More... | |
void | Again () |
Stop the timer and restart it if it was repeating. More... | |
void | SetRepeat (Time repeat) |
Set the repeat interval value. More... | |
Time | GetRepeat () const |
Get the timer repeat value. More... | |
Time | GetDueIn () const |
Get the timer due value or 0 if it has expired. More... | |
Public Member Functions inherited from wpi::uv::HandleImpl< Timer, uv_timer_t > | |
std::shared_ptr< Timer > | shared_from_this () |
std::shared_ptr< const Timer > | shared_from_this () const |
uv_timer_t * | GetRaw () const noexcept |
Get the underlying handle data structure. More... | |
Public Member Functions inherited from wpi::uv::Handle | |
Handle (const Handle &)=delete | |
Handle (Handle &&)=delete | |
Handle & | operator= (const Handle &)=delete |
Handle & | operator= (Handle &&)=delete |
virtual | ~Handle () noexcept |
Type | GetType () const noexcept |
Get the type of the handle. More... | |
std::string_view | GetTypeName () const noexcept |
Get the name of the type of the handle. More... | |
std::shared_ptr< Loop > | GetLoop () const noexcept |
Get the loop where this handle runs. More... | |
Loop & | GetLoopRef () const noexcept |
Get the loop where this handle runs. More... | |
bool | IsActive () const noexcept |
Check if the handle is active. More... | |
bool | IsClosing () const noexcept |
Check if a handle is closing or closed. More... | |
void | Close () noexcept |
Request handle to be closed. More... | |
void | SetLoopClosing (bool loopClosing) noexcept |
Set if the loop is closing. More... | |
bool | IsLoopClosing () const noexcept |
Get the loop closing status. More... | |
void | Reference () noexcept |
Reference the given handle. More... | |
void | Unreference () noexcept |
Unreference the given handle. More... | |
bool | HasReference () const noexcept |
Check if the given handle is referenced. More... | |
size_t | RawSize () const noexcept |
Return the size of the underlying handle type. More... | |
uv_handle_t * | GetRawHandle () const noexcept |
Get the underlying handle data structure. More... | |
void | SetBufferAllocator (std::function< Buffer(size_t)> alloc, std::function< void(Buffer &)> dealloc) |
Set the functions used for allocating and releasing buffers. More... | |
void | FreeBuf (Buffer &buf) const noexcept |
Free a buffer. More... | |
template<typename T = void> | |
std::shared_ptr< T > | GetData () const |
Gets user-defined data. More... | |
void | SetData (std::shared_ptr< void > data) |
Sets user-defined data. More... | |
void | ReportError (int err) const |
Report an error. More... | |
Static Public Member Functions | |
static std::shared_ptr< Timer > | Create (Loop &loop) |
Create a timer handle. More... | |
static std::shared_ptr< Timer > | Create (const std::shared_ptr< Loop > &loop) |
Create a timer handle. More... | |
static void | SingleShot (Loop &loop, Time timeout, std::function< void()> func) |
Create a timer that calls a functor after a given time interval. More... | |
static void | SingleShot (const std::shared_ptr< Loop > &loop, Time timeout, std::function< void()> func) |
Create a timer that calls a functor after a given time interval. More... | |
Public Attributes | |
sig::Signal | timeout |
Signal generated when the timeout event occurs. More... | |
Public Attributes inherited from wpi::uv::Handle | |
sig::Signal< Error > | error |
Error signal. More... | |
sig::Signal | closed |
Closed signal. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from wpi::uv::HandleImpl< Timer, uv_timer_t > | |
HandleImpl () | |
Protected Member Functions inherited from wpi::uv::Handle | |
Handle (uv_handle_t *uv_handle) | |
void | Keep () noexcept |
void | Release () noexcept |
void | ForceClosed () noexcept |
template<typename F , typename... Args> | |
bool | Invoke (F &&f, Args &&... args) const |
Static Protected Member Functions inherited from wpi::uv::Handle | |
static void | AllocBuf (uv_handle_t *handle, size_t size, uv_buf_t *buf) |
static void | DefaultFreeBuf (Buffer &buf) |
using wpi::uv::Timer::Time = std::chrono::duration<uint64_t, std::milli> |
|
inlineexplicit |
|
overridedefaultnoexcept |
|
inline |
Stop the timer and restart it if it was repeating.
Stop the timer, and if it is repeating restart it using the repeat value as the timeout. If the timer has never been started before it emits sigError.
|
inlinestatic |
Create a timer handle.
loop | Loop object where this handle runs. |
Create a timer handle.
loop | Loop object where this handle runs. |
|
inline |
|
inline |
Get the timer repeat value.
std::chrono::duration<uint64_t, std::milli>
).
|
inline |
Set the repeat interval value.
The timer will be scheduled to run on the given interval and will follow normal timer semantics in the case of a time-slice overrun. For example, if a 50ms repeating timer first runs for 17ms, it will be scheduled to run again 33ms later. If other tasks consume more than the 33ms following the first timer event, then another event will be emitted as soon as possible.
If the repeat value is set from a listener bound to an event, it does not immediately take effect. If the timer was non-repeating before, it will have been stopped. If it was repeating, then the old repeat value will have been used to schedule the next timeout.
repeat | Repeat interval in milliseconds (use std::chrono::duration<uint64_t, std::milli> ). |
|
inlinestatic |
Create a timer that calls a functor after a given time interval.
loop | Loop object where the timer should run. |
timeout | Time interval |
func | Functor |
|
static |
Create a timer that calls a functor after a given time interval.
loop | Loop object where the timer should run. |
timeout | Time interval |
func | Functor |
Start the timer.
If timeout is zero, an event is emitted on the next event loop iteration. If repeat is non-zero, an event is emitted first after timeout milliseconds and then repeatedly after repeat milliseconds.
timeout | Milliseconds before to emit an event (use std::chrono::duration<uint64_t, std::milli> ). |
repeat | Milliseconds between successive events (use std::chrono::duration<uint64_t, std::milli> ). |
|
inline |
Stop the timer.
sig::Signal wpi::uv::Timer::timeout |
Signal generated when the timeout event occurs.