#include <system_clock.h>
Public Member Functions | |
virtual SystemClock::time_point | now ()=0 |
Returns the current time. | |
Static Public Member Functions | |
static VirtualClock< SystemClock > & | RealClock () |
Returns a reference to the real system clock to aid instantiation. | |
An abstract interface representing a SystemClock.
This interface allows decoupling code that uses time from the code that creates a point in time. You can use this to your advantage by injecting Clocks into interfaces rather than having implementations call SystemClock::now()
directly. However, this comes at a cost of a vtable per implementation and more importantly passing and maintaining references to the VirtualClock for all of the users.
The VirtualSystemClock::RealClock()
function returns a reference to the real global SystemClock.
Example:
This interface is thread and IRQ safe.
|
pure virtual |
Returns the current time.
Implemented in pw::async::HeapDispatcher, pw::async::BasicDispatcher, and pw::chrono::SimulatedSystemClock.