C/C++ API Reference
Loading...
Searching...
No Matches
pw::chrono::SystemTimer Class Reference

Overview

The SystemTimer allows an ExpiryCallback be executed at a set time in the future.

The base SystemTimer only supports a one-shot style timer with a callback. A periodic timer can be implemented by rescheduling the timer in the callback through InvokeAt(kDesiredPeriod + expired_deadline).

When implementing a periodic layer on top, the user should be mindful of handling missed periodic callbacks. They could opt to invoke the callback multiple times with the expected expired_deadline values or instead saturate and invoke the callback only once with the latest expired_deadline.

The entire API is thread safe, however it is NOT always IRQ safe.

Public Types

using native_handle_type = backend::NativeSystemTimerHandle
 
using ExpiryCallback = Function< void(SystemClock::time_point expired_deadline)>
 

Public Member Functions

 SystemTimer (ExpiryCallback &&callback)
 
 ~SystemTimer ()
 
 SystemTimer (const SystemTimer &)=delete
 
 SystemTimer (SystemTimer &&)=delete
 
SystemTimeroperator= (const SystemTimer &)=delete
 
SystemTimeroperator= (SystemTimer &&)=delete
 
void InvokeAfter (SystemClock::duration delay)
 
void InvokeAt (SystemClock::time_point timestamp)
 
void Cancel ()
 
native_handle_type native_handle ()
 

The documentation for this class was generated from the following file: