OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library barback.phase_forwarder; | 5 library barback.graph.phase_forwarder; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'asset_node.dart'; | 9 import '../asset/asset_node.dart'; |
10 import 'asset_node_set.dart'; | 10 import '../asset/asset_node_set.dart'; |
11 | 11 |
12 /// A class that takes care of forwarding assets within a phase. | 12 /// A class that takes care of forwarding assets within a phase. |
13 /// | 13 /// |
14 /// Each phase contains one or more channels that process its input assets. Each | 14 /// Each phase contains one or more channels that process its input assets. Each |
15 /// non-grouped transformer for that phase is a channel, each [TransformerGroup] | 15 /// non-grouped transformer for that phase is a channel, each [TransformerGroup] |
16 /// in that phase is another, and the source node is the final channel. For each | 16 /// in that phase is another, and the source node is the final channel. For each |
17 /// input asset, each channel individually decides whether to forward that asset | 17 /// input asset, each channel individually decides whether to forward that asset |
18 /// based on whether that channel uses it. If a channel does decide to forward | 18 /// based on whether that channel uses it. If a channel does decide to forward |
19 /// an asset, we call that forwarded asset an "intermediate forwarded asset" to | 19 /// an asset, we call that forwarded asset an "intermediate forwarded asset" to |
20 /// distinguish it from the output of a [PhaseForwarder]. | 20 /// distinguish it from the output of a [PhaseForwarder]. |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 | 125 |
126 // If we're already forwarding a final asset, set it dirty iff any of the | 126 // If we're already forwarding a final asset, set it dirty iff any of the |
127 // intermediate assets are dirty. | 127 // intermediate assets are dirty. |
128 if (_intermediateAssets.any((asset) => asset.state.isDirty)) { | 128 if (_intermediateAssets.any((asset) => asset.state.isDirty)) { |
129 if (!_outputController.node.state.isDirty) _outputController.setDirty(); | 129 if (!_outputController.node.state.isDirty) _outputController.setDirty(); |
130 } else if (!_outputController.node.state.isAvailable) { | 130 } else if (!_outputController.node.state.isAvailable) { |
131 _outputController.setAvailable(_intermediateAssets.first.asset); | 131 _outputController.setAvailable(_intermediateAssets.first.asset); |
132 } | 132 } |
133 } | 133 } |
134 } | 134 } |
OLD | NEW |