diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-07-23 16:39:51 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-07-23 16:39:51 +0000 |
commit | da234921b783d8ab31ddeb54a9c912f80715846d (patch) | |
tree | fd32fc40df0973011bc0460b7d49121f8aa1a709 /src/library/scala/collection/generic/ParFactory.scala | |
parent | 97b7cc4ddb806641ce5d1584ae913312755c012d (diff) | |
download | scala-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.scala | 43 |
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] + } +} + + + + + + + + + + + + + |