1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
/**
* (C) Copyright 2008 Jeremy Maitin-Shepard
*
* Use, modification, and distribution are subject to the terms specified in the
* COPYING file.
**/
function timer_callback (callback) {
this.callback = callback;
}
timer_callback.prototype = {
constructor: timer_callback,
QueryInterface: XPCOMUtils.generateQI([Ci.nsITimerCallback]),
notify: function (timer) {
this.callback.call(null, timer);
}
};
function call_after_timeout (callback, timeout) {
var timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
timer.initWithCallback(new timer_callback(callback), timeout, Ci.nsITimer.TYPE_ONE_SHOT);
return timer;
}
function call_at_interval (callback, interval) {
var timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
timer.initWithCallback(new timer_callback(callback), interval, Ci.nsITimer.TYPE_REPEATING_SLACK);
return timer;
}
function call_at_precise_interval (callback, interval) {
var timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
timer.initWithCallback(new timer_callback(callback), interval, Ci.nsITimer.TYPE_REPEATING_PRECISE);
return timer;
}
function timer_cancel (timer) {
timer.cancel();
}
provide("timer");
|