cc-haxe/src/kernel/Timer.hx

38 lines
663 B
Haxe

package kernel;
import cc.OS;
using tink.CoreApi;
/**
Wrapper class for using timers.
**/
class Timer {
private final timerID:Int;
private final callback:Callback<Noise>;
private final timerLink:CallbackLink;
/**
Create new timer with timeout in seconds.
**/
public function new(timeout:Float, callback:Callback<Noise>) {
timerID = OS.startTimer(timeout);
this.callback = callback;
timerLink = KernelEvents.onTimer.handle(timerID -> {
if (this.timerID == timerID) {
callback.invoke(null);
timerLink.cancel();
}
});
}
/**
Cancle timer.
**/
public function cancle() {
OS.cancelTimer(timerID);
timerLink.cancel();
}
}