Chromium Code Reviews| 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.graph.phase; | 5 library barback.graph.phase; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import '../asset/asset_id.dart'; | 9 import '../asset/asset_id.dart'; |
| 10 import '../asset/asset_node.dart'; | 10 import '../asset/asset_node.dart'; |
| 11 import '../asset/asset_node_set.dart'; | 11 import '../asset/asset_node_set.dart'; |
| 12 import '../errors.dart'; | 12 import '../errors.dart'; |
| 13 import '../log.dart'; | 13 import '../log.dart'; |
| 14 import '../transformer/aggregate_transformer.dart'; | |
| 14 import '../transformer/transformer.dart'; | 15 import '../transformer/transformer.dart'; |
| 15 import '../transformer/transformer_group.dart'; | 16 import '../transformer/transformer_group.dart'; |
| 16 import '../utils.dart'; | 17 import '../utils.dart'; |
| 17 import '../utils/multiset.dart'; | 18 import '../utils/multiset.dart'; |
| 18 import 'asset_cascade.dart'; | 19 import 'asset_cascade.dart'; |
| 19 import 'group_runner.dart'; | 20 import 'group_runner.dart'; |
| 20 import 'node_status.dart'; | 21 import 'node_status.dart'; |
| 21 import 'node_streams.dart'; | 22 import 'node_streams.dart'; |
| 22 import 'phase_forwarder.dart'; | 23 import 'phase_forwarder.dart'; |
| 23 import 'phase_output.dart'; | 24 import 'phase_output.dart'; |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 47 | 48 |
| 48 /// The groups for this phase. | 49 /// The groups for this phase. |
| 49 final _groups = new Map<TransformerGroup, GroupRunner>(); | 50 final _groups = new Map<TransformerGroup, GroupRunner>(); |
| 50 | 51 |
| 51 /// The inputs for this phase. | 52 /// The inputs for this phase. |
| 52 /// | 53 /// |
| 53 /// For the first phase, these will be the source assets. For all other | 54 /// For the first phase, these will be the source assets. For all other |
| 54 /// phases, they will be the outputs from the previous phase. | 55 /// phases, they will be the outputs from the previous phase. |
| 55 final _inputs = new AssetNodeSet(); | 56 final _inputs = new AssetNodeSet(); |
| 56 | 57 |
| 57 /// The transformer classifiers for this phase. | 58 /// The transformer classifiers for this phase. |
|
Bob Nystrom
2014/05/27 17:20:18
Document the key type.
nweiz
2014/05/27 21:03:10
Done.
| |
| 58 final _classifiers = new Map<Transformer, TransformerClassifier>(); | 59 final _classifiers = new Map<dynamic, TransformerClassifier>(); |
| 59 | 60 |
| 60 /// The forwarders for this phase. | 61 /// The forwarders for this phase. |
| 61 final _forwarders = new Map<AssetId, PhaseForwarder>(); | 62 final _forwarders = new Map<AssetId, PhaseForwarder>(); |
| 62 | 63 |
| 63 /// The outputs for this phase. | 64 /// The outputs for this phase. |
| 64 final _outputs = new Map<AssetId, PhaseOutput>(); | 65 final _outputs = new Map<AssetId, PhaseOutput>(); |
| 65 | 66 |
| 66 /// The set of all [AssetNode.origin] properties of the input assets for this | 67 /// The set of all [AssetNode.origin] properties of the input assets for this |
| 67 /// phase. | 68 /// phase. |
| 68 /// | 69 /// |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 226 // Otherwise, store a completer for the asset node. If it's generated in | 227 // Otherwise, store a completer for the asset node. If it's generated in |
| 227 // the future, we'll complete this completer. | 228 // the future, we'll complete this completer. |
| 228 var completer = _pendingOutputRequests.putIfAbsent(id, | 229 var completer = _pendingOutputRequests.putIfAbsent(id, |
| 229 () => new Completer.sync()); | 230 () => new Completer.sync()); |
| 230 return completer.future; | 231 return completer.future; |
| 231 }); | 232 }); |
| 232 } | 233 } |
| 233 | 234 |
| 234 /// Set this phase's transformers to [transformers]. | 235 /// Set this phase's transformers to [transformers]. |
| 235 void updateTransformers(Iterable transformers) { | 236 void updateTransformers(Iterable transformers) { |
| 236 var newTransformers = transformers.where((op) => op is Transformer) | 237 var newTransformers = transformers |
| 238 .where((op) => op is Transformer || op is AggregateTransformer) | |
| 237 .toSet(); | 239 .toSet(); |
| 238 var oldTransformers = _classifiers.keys.toSet(); | 240 var oldTransformers = _classifiers.keys.toSet(); |
| 239 for (var removed in oldTransformers.difference(newTransformers)) { | 241 for (var removed in oldTransformers.difference(newTransformers)) { |
| 240 _classifiers.remove(removed).remove(); | 242 _classifiers.remove(removed).remove(); |
| 241 } | 243 } |
| 242 | 244 |
| 243 for (var transformer in newTransformers.difference(oldTransformers)) { | 245 for (var transformer in newTransformers.difference(oldTransformers)) { |
| 244 var classifier = new TransformerClassifier( | 246 var classifier = new TransformerClassifier( |
| 245 this, transformer, "$_location.$_index"); | 247 this, transformer, "$_location.$_index"); |
| 246 _classifiers[transformer] = classifier; | 248 _classifiers[transformer] = classifier; |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 378 assert(asset.state.isDirty); | 380 assert(asset.state.isDirty); |
| 379 asset.force(); | 381 asset.force(); |
| 380 asset.whenStateChanges().then((state) { | 382 asset.whenStateChanges().then((state) { |
| 381 if (state.isRemoved) return getOutput(asset.id); | 383 if (state.isRemoved) return getOutput(asset.id); |
| 382 return asset; | 384 return asset; |
| 383 }).then(request.complete).catchError(request.completeError); | 385 }).then(request.complete).catchError(request.completeError); |
| 384 } | 386 } |
| 385 | 387 |
| 386 String toString() => "phase $_location.$_index"; | 388 String toString() => "phase $_location.$_index"; |
| 387 } | 389 } |
| OLD | NEW |