bipedal locomotion framework
A suite of libraries for achieving bipedal locomotion on humanoid robots
BipedalLocomotion::System::StdClock Class Referencefinal

StdClock implements the IClock interface using <chrono> from c++std library. More...

#include <System/include/BipedalLocomotion/System/StdClock.h>

Public Member Functions

std::chrono::nanoseconds now () final
 Get the system current time. More...
 
void sleepFor (const std::chrono::nanoseconds &sleepDuration) final
 Blocks the execution of the current thread for at least the specified sleepDuration. More...
 
void sleepUntil (const std::chrono::nanoseconds &sleepTime) final
 Blocks the execution of the current thread until specified sleepTime has been reached. More...
 
void yield () final
 Provides a hint to the implementation to reschedule the execution of threads, allowing other threads to run.
 
- Public Member Functions inherited from BipedalLocomotion::System::IClock
virtual ~IClock ()=default
 Destructor.
 

Additional Inherited Members

- Protected Member Functions inherited from BipedalLocomotion::System::IClock
 IClock ()=default
 The constructor is protected. More...
 

Detailed Description

StdClock implements the IClock interface using <chrono> from c++std library.

The clock can be easily used as follows

auto start = BipedalLocomotion::clock().now();
foo();
std::chrono::duration<double, std::milli> elapsed = end-start;
virtual std::chrono::nanoseconds now()=0
Get the current time.
System::IClock & clock()
Get the clock singleton.
Definition: Clock.cpp:11

Member Function Documentation

◆ now()

std::chrono::nanoseconds StdClock::now ( )
finalvirtual

Get the system current time.

Returns
the current time since epoch computed with std::chrono::system_clock
Note
BipedalLocomotion::clock().now().count() returns a double containing the seconds since epoch

Implements BipedalLocomotion::System::IClock.

◆ sleepFor()

void StdClock::sleepFor ( const std::chrono::nanoseconds &  sleepDuration)
finalvirtual

Blocks the execution of the current thread for at least the specified sleepDuration.

Parameters
timeduration to sleep
Note
std::this_tread::sleep_for() function is used.

Implements BipedalLocomotion::System::IClock.

◆ sleepUntil()

void StdClock::sleepUntil ( const std::chrono::nanoseconds &  sleepTime)
finalvirtual

Blocks the execution of the current thread until specified sleepTime has been reached.

Parameters
timeto block until
Note
sleepTime is the duration since epoch

Implements BipedalLocomotion::System::IClock.


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