Skip to content

C++ timer: wrapper around the standard Linux C timer to make your life easier

License

Notifications You must be signed in to change notification settings

berndporr/cppTimer

Repository files navigation

CppTimer

Generic C++ Timer for Linux

It's a wrapper around the Linux timers. There are two ways of using the timer: by overloading the timerEvent() method in the CppTimer class itself (fastest) or by registering a callback class called Runnable with an overloaded run() method.

Installation

cmake .
make
sudo make install

Usage (overloading the timer event)

The doxygen generated online docs are here: https://berndporr.github.io/cppTimer/

Include CppTimer.h in your program. That's it.

TARGET_LINK_LIBRARIES(your_project_title cpptimer rt)

Create the Timer class

class MyTimer : public CppTimer {

	void timerEvent() {
		// your timer event code here
	}
};

where you override timerEvent with your function.

Run the Timer class

The timer is programmed in nanoseconds:

	MyTimer myTimer;
	// every 500000ns
	myTimer.startns(500000);

or milliseconds:

	// every 200ms
	myTimer.startms(200);

As soon as start returns the timer fires instantly and then at the specified interval.

Demo program

To run demo.cpp just do cmake ., make and then ./demo.

Callback interface version

Instead of overloading the run() method in the timer class you can overload the run() method in the Runnable class and then register this class with the timer class. Check out demo_runnable which demonstrates how to use this method.

Callback via lambda function

Here, the callback is established with the help of a lambda function instead of a callback interface. This allows direct registering of a method of the receiving class but one needs to get used to the lambda function syntax.

Unit tests

Run:

ctest

That's it. Enjoy!