Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(556)

Unified Diff: pkg/barback/lib/src/transformer_cluster.dart

Issue 25376003: Add support for transformer clusters to barback. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Expose the Operator class. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/barback/lib/src/transformer_cluster.dart
diff --git a/pkg/barback/lib/src/transformer_cluster.dart b/pkg/barback/lib/src/transformer_cluster.dart
new file mode 100644
index 0000000000000000000000000000000000000000..becb5600f2db43eee46776346617fff2d7883f48
--- /dev/null
+++ b/pkg/barback/lib/src/transformer_cluster.dart
@@ -0,0 +1,30 @@
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+// 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.transformer_cluster;
+
+import 'dart:async';
+
+import 'operator.dart';
+
+/// A [TransformerCluster] encapsulates a phased collection of transformers.
+///
+/// A transformer cluster is defined like a collection of phases, such as you
+/// might pass to [Barback.updateOperators]. Input assets are transformed by the
+/// first phase, whose results are passed to the second phase, and so on.
+///
+/// However, from the perspective of someone using a [TransformerCluster], it
+/// works just like a [Transformer]. It can be included in phases, and will run
+/// in parallel to other transformers or clusters in those phases. Other
+/// transformers and clusters will be unable to see any intermediate assets that
+/// are generated by one phase of the cluster and consumed by another. Phases
+/// following that containing the cluster will be able to see its outputs,
Bob Nystrom 2013/10/04 21:47:50 "Phases following that" -> "Phases after the one".
nweiz 2013/10/07 23:21:31 Done.
+/// though.
+class TransformerCluster implements Operator {
Bob Nystrom 2013/10/04 21:47:50 As per our discussion: "TransformerGroup".
nweiz 2013/10/07 23:21:31 Done.
+ /// The phases that comprise this cluster.
+ final Iterable<Iterable<Operator>> phases;
+
+ TransformerCluster(Iterable<Iterable<Operator>> phases)
+ : this.phases = phases.map((phase) => phase.toList()).toList();
+}

Powered by Google App Engine
This is Rietveld 408576698