LCOV - code coverage report
Current view: top level - src/queue - get_queue.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 14 0.0 %
Date: 2020-07-01 03:00:01 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:async';
       2             : 
       3             : class GetQueue {
       4             :   final List<_Item> _queue = [];
       5             :   bool _active = false;
       6             : 
       7           0 :   void _check() async {
       8           0 :     if (!_active && _queue.isNotEmpty) {
       9           0 :       _active = true;
      10           0 :       var item = _queue.removeAt(0);
      11             :       try {
      12           0 :         item.completer.complete(await item.job());
      13             :       } catch (e) {
      14           0 :         item.completer.completeError(e);
      15             :       }
      16           0 :       _active = false;
      17           0 :       _check();
      18             :     }
      19             :   }
      20             : 
      21           0 :   Future<T> add<T>(Function job) {
      22           0 :     var completer = Completer<T>();
      23           0 :     _queue.add(_Item(completer, job));
      24           0 :     _check();
      25           0 :     return completer.future;
      26             :   }
      27             : }
      28             : 
      29             : class _Item {
      30             :   final completer;
      31             :   final job;
      32           0 :   _Item(this.completer, this.job);
      33             : }

Generated by: LCOV version 1.14