Combiner
The base trait for all combiners. A combiner incremental collection construction just like a regular builder, but also implements an efficient merge operation of two builders via combine
method. Once the collection is constructed, it may be obtained by invoking the result
method.
The complexity of the combine
method should be less than linear for best performance. The result
method doesn't have to be a constant time operation, but may be performed in parallel.
Type parameters
- Elem
-
the type of the elements added to the builder
- To
-
the type of the collection the builder produces
Attributes
- Graph
-
- Supertypes
- Known subtypes
-
trait ResizableParArrayCombiner[T]trait UnrolledParArrayCombiner[T]
Members list
Value members
Abstract methods
Combines the contents of the receiver builder and the other
builder, producing a new builder containing both their elements.
Combines the contents of the receiver builder and the other
builder, producing a new builder containing both their elements.
This method may combine the two builders by copying them into a larger collection, by producing a lazy view that gets evaluated once result
is invoked, or use a merge operation specific to the data structure in question.
Note that both the receiver builder and other
builder become invalidated after the invocation of this method, and should be cleared (see clear
) if they are to be used again.
Also, combining two combiners c1
and c2
for which c1 eq c2
is true
, that is, they are the same objects in memory:
c1.combine(c2)
always does nothing and returns c1
.
Type parameters
- N
-
the type of elements contained by the
other
builder - NewTo
-
the type of collection produced by the
other
builder
Value parameters
- other
-
the other builder
Attributes
- Returns
-
the parallel builder containing both the elements of this and the
other
builder
Concrete methods
Returns true
if this combiner has a thread-safe +=
and is meant to be shared across several threads constructing the collection.
Returns true
if this combiner has a thread-safe +=
and is meant to be shared across several threads constructing the collection.
By default, this method returns false
.
Attributes
Add all elements from a sequential collection and return the result.
Add all elements from a sequential collection and return the result.
Attributes
Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.
Constructs the result and sets the appropriate tasksupport object to the resulting collection if this is applicable.