summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/generic/ParFactory.scala
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-07-23 16:39:51 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-07-23 16:39:51 +0000
commitda234921b783d8ab31ddeb54a9c912f80715846d (patch)
treefd32fc40df0973011bc0460b7d49121f8aa1a709 /src/library/scala/collection/generic/ParFactory.scala
parent97b7cc4ddb806641ce5d1584ae913312755c012d (diff)
downloadscala-da234921b783d8ab31ddeb54a9c912f80715846d.tar.gz
scala-da234921b783d8ab31ddeb54a9c912f80715846d.tar.bz2
scala-da234921b783d8ab31ddeb54a9c912f80715846d.zip
Parallel collection library renamings. No review
Diffstat (limited to 'src/library/scala/collection/generic/ParFactory.scala')
-rw-r--r--src/library/scala/collection/generic/ParFactory.scala43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/library/scala/collection/generic/ParFactory.scala b/src/library/scala/collection/generic/ParFactory.scala
new file mode 100644
index 0000000000..a7ebb8c912
--- /dev/null
+++ b/src/library/scala/collection/generic/ParFactory.scala
@@ -0,0 +1,43 @@
+package scala.collection.generic
+
+
+import scala.collection.parallel.ParIterable
+import scala.collection.parallel.Combiner
+
+
+
+/** A template class for companion objects of `ParIterable` and subclasses thereof.
+ * This class extends `TraversableFactory` and provides a set of operations to create `$Coll` objects.
+ *
+ * @define $coll parallel collection
+ * @define $Coll ParIterable
+ */
+abstract class ParFactory[CC[X] <: ParIterable[X] with GenericParTemplate[X, CC]]
+extends TraversableFactory[CC]
+ with GenericParCompanion[CC] {
+
+ type EPC[T, C] = collection.parallel.EnvironmentPassingCombiner[T, C]
+
+ /**
+ * A generic implementation of the `CanCombineFrom` trait, which forwards all calls to
+ * `apply(from)` to the `genericParBuilder` method of the $coll `from`, and calls to `apply()`
+ * to this factory.
+ */
+ class GenericCanCombineFrom[A] extends GenericCanBuildFrom[A] with CanCombineFrom[CC[_], A, CC[A]] {
+ override def apply(from: Coll) = from.genericCombiner
+ override def apply() = newBuilder[A]
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+