LCOV - code coverage report
Current view: top level - async-2.5.0/lib/src - restartable_timer.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 11 0.0 %
Date: 2021-11-28 14:37:50 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
       2             : // for details. All rights reserved. Use of this source code is governed by a
       3             : // BSD-style license that can be found in the LICENSE file.
       4             : 
       5             : import 'dart:async';
       6             : 
       7             : /// A non-periodic timer that can be restarted any number of times.
       8             : ///
       9             : /// Once restarted (via [reset]), the timer counts down from its original
      10             : /// duration again.
      11             : class RestartableTimer implements Timer {
      12             :   /// The duration of the timer.
      13             :   final Duration _duration;
      14             : 
      15             :   /// The callback to call when the timer fires.
      16             :   final ZoneCallback _callback;
      17             : 
      18             :   /// The timer for the current or most recent countdown.
      19             :   ///
      20             :   /// This timer is canceled and overwritten every time this [RestartableTimer]
      21             :   /// is reset.
      22             :   Timer _timer;
      23             : 
      24             :   /// Creates a new timer.
      25             :   ///
      26             :   /// The [callback] function is invoked after the given [duration]. Unlike a
      27             :   /// normal non-periodic [Timer], [callback] may be called more than once.
      28           0 :   RestartableTimer(this._duration, this._callback)
      29           0 :       : _timer = Timer(_duration, _callback);
      30             : 
      31           0 :   @override
      32           0 :   bool get isActive => _timer.isActive;
      33             : 
      34             :   /// Restarts the timer so that it counts down from its original duration
      35             :   /// again.
      36             :   ///
      37             :   /// This restarts the timer even if it has already fired or has been canceled.
      38           0 :   void reset() {
      39           0 :     _timer.cancel();
      40           0 :     _timer = Timer(_duration, _callback);
      41             :   }
      42             : 
      43           0 :   @override
      44             :   void cancel() {
      45           0 :     _timer.cancel();
      46             :   }
      47             : 
      48             :   /// The number of durations preceding the most recent timer event on the most
      49             :   /// recent countdown.
      50             :   ///
      51             :   /// Calls to [reset] will also reset the tick so subsequent tick values may
      52             :   /// not be strictly larger than previous values.
      53           0 :   @override
      54           0 :   int get tick => _timer.tick;
      55             : }

Generated by: LCOV version 1.14