Version 1 (modified by landauf, 16 years ago) (diff) |
---|
HowTo: Timer
TracNav(TracNav/TOC_Development)?
It's possible to delay a function call by using a Timer. In fact it's even possible to delay a whole call including an object and several arguments. This is achievec by using an Executor?.
Static functions
For static functions, use StaticTimer. A StaticTimer is created either in the constructor or by calling setTimer:
- StaticTimer(interval, bLoop, executor)
- setTimer(interval, bLoop, executor)
interval is the time in seconds until the function gets executed.
bLoop is a bool. If set to true, the Timer will continue calling the function after every interval seconds.
executor is an ExecutorStatic of a static functio
#include "tools/Timer.h" void myFunction(); void myAdvancedFunction(int value); // Call myFunctionafter 5 seconds StaticTimer myTimer(5.0f, false, createExecutor(createFunctor(&myFunction))); // Call myAdvancedFunction(10) after 3 seconds ExectorStatic* executor = createExecutor(createFunctor(&myAdvancedFunction)); executor->setDefaultValue(0, 10.0f); // Bind the value StaticTimer myAdvancedTimer(3.0f, false, executor);
See Executor? for more information on how to find values.
Member functions
For member functions you additionally have to add the object:
- StaticTimer(interval, bLoop, object, executor)
- setTimer(interval, bLoop, object, executor)
interval, bLoop and executor are like in StaticTimer (except executor has to be an ExecutorMember).
object the object on which to call the function.
#include "tools/Timer.h" class MyClass { void myFunction(); }; // Create an instance of MyClass: MyClass* object = new MyClass(); // Call MyClass::myFunctionafter after 5 seconds Timer myTimer(5.0f, false, object, createExecutor(createFunctor(&MyClass::myFunction)));