Index: third_party/pkg/barback-0.13.0/lib/src/group_runner.dart |
diff --git a/pkg/barback/lib/src/graph/group_runner.dart b/third_party/pkg/barback-0.13.0/lib/src/group_runner.dart |
similarity index 73% |
copy from pkg/barback/lib/src/graph/group_runner.dart |
copy to third_party/pkg/barback-0.13.0/lib/src/group_runner.dart |
index e609ba22bbe6fa30d09fd1e76ddf50af27002c98..970d4aa4ceed9599176883c6b2ea0c6a2e6be6e7 100644 |
--- a/pkg/barback/lib/src/graph/group_runner.dart |
+++ b/third_party/pkg/barback-0.13.0/lib/src/group_runner.dart |
@@ -2,17 +2,16 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
-library barback.graph.group_runner; |
+library barback.group_runner; |
import 'dart:async'; |
-import '../asset/asset_node.dart'; |
-import '../log.dart'; |
-import '../transformer/transformer_group.dart'; |
-import '../utils/stream_pool.dart'; |
import 'asset_cascade.dart'; |
-import 'node_status.dart'; |
+import 'asset_node.dart'; |
+import 'log.dart'; |
import 'phase.dart'; |
+import 'stream_pool.dart'; |
+import 'transformer_group.dart'; |
/// A class that processes all of the phases in a single transformer group. |
/// |
@@ -27,16 +26,19 @@ class GroupRunner { |
/// The phases defined by this group. |
final _phases = new List<Phase>(); |
- /// How far along [this] is in processing its assets. |
- NodeStatus get status { |
+ /// Whether [this] is dirty and still has more processing to do. |
+ bool get isDirty { |
// Just check the last phase, since it will check all the previous phases |
// itself. |
- return _phases.last.status; |
+ return _phases.last.isDirty; |
} |
- /// A stream that emits an event every time the group's status changes. |
- Stream<NodeStatus> get onStatusChange => _onStatusChange; |
- Stream _onStatusChange; |
+ /// A stream that emits an event whenever [this] is no longer dirty. |
+ /// |
+ /// This is synchronous in order to guarantee that it will emit an event as |
+ /// soon as [isDirty] flips from `true` to `false`. |
+ Stream get onDone => _onDone; |
+ Stream _onDone; |
/// A stream that emits any new assets emitted by [this]. |
/// |
@@ -50,14 +52,14 @@ class GroupRunner { |
Stream<LogEntry> get onLog => _onLogPool.stream; |
final _onLogPool = new StreamPool<LogEntry>.broadcast(); |
- GroupRunner(Phase previous, this._group, this._location) { |
- _addPhase(previous.addPhase(_location), []); |
+ GroupRunner(AssetCascade cascade, this._group, this._location) { |
+ _addPhase(new Phase(cascade, _location), []); |
for (var phase in _group.phases) { |
_addPhase(_phases.last.addPhase(), phase); |
} |
_onAsset = _phases.last.onAsset; |
- _onStatusChange = _phases.last.onStatusChange; |
+ _onDone = _phases.last.onDone; |
} |
/// Add a phase with [contents] to [this]'s list of phases. |
@@ -78,9 +80,13 @@ class GroupRunner { |
} |
} |
+ /// Adds a new asset as an input for this group. |
+ void addInput(AssetNode node) { |
+ _phases.first.addInput(node); |
+ } |
+ |
/// Removes this group and all sub-phases within it. |
void remove() { |
- _onLogPool.close(); |
for (var phase in _phases) { |
phase.remove(); |
} |