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 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.

Unit tests

Run:

ctest

That's it. Enjoy!