• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5/**
6 * @fileoverview Provides a countdown-based timer interface.
7 */
8'use strict';
9
10/**
11 * A countdown timer.
12 * @interface
13 */
14function Countdown() {}
15
16/**
17 * Sets a new timeout for this timer.
18 * @param {number} timeoutMillis how long, in milliseconds, the countdown lasts.
19 * @param {Function=} cb called back when the countdown expires.
20 * @return {boolean} whether the timeout could be set.
21 */
22Countdown.prototype.setTimeout = function(timeoutMillis, cb) {};
23
24/** Clears this timer's timeout. Timers that are cleared become expired. */
25Countdown.prototype.clearTimeout = function() {};
26
27/**
28 * @return {number} how many milliseconds are remaining until the timer expires.
29 */
30Countdown.prototype.millisecondsUntilExpired = function() {};
31
32/** @return {boolean} whether the timer has expired. */
33Countdown.prototype.expired = function() {};
34
35/**
36 * Constructs a new clone of this timer, while overriding its callback.
37 * @param {Function=} cb callback for new timer.
38 * @return {!Countdown} new clone.
39 */
40Countdown.prototype.clone = function(cb) {};
41
42/**
43 * A factory to create countdown timers.
44 * @interface
45 */
46function CountdownFactory() {}
47
48/**
49 * Creates a new timer.
50 * @param {number} timeoutMillis How long, in milliseconds, the countdown lasts.
51 * @param {function()=} opt_cb Called back when the countdown expires.
52 * @return {!Countdown} The timer.
53 */
54CountdownFactory.prototype.createTimer = function(timeoutMillis, opt_cb) {};
55