Package uk.ac.starlink.ttools.plot2.data
Class TupleRunner
SplitRunner subclass for use with TupleSequences.
- Since:
- 17 Sep 2019
- Author:
- Mark Taylor
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final TupleRunner
Tries different implementations and logs timings to stdout.static final TupleRunner
Standard instance for parallel processing.static final TupleRunner
Always runs sequentially, no parallel processing. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<A> A
collect
(uk.ac.starlink.util.SplitCollector<TupleSequence, A> collector, Supplier<TupleSequence> tupleSupplier) Performs a collection operation.<A> A
collectPool
(uk.ac.starlink.util.SplitCollector<TupleSequence, A> collector, Supplier<TupleSequence> tupleSupplier) Performs a collection operation with a hint that accumulator pooling is recommended.Returns a SplitRunner use with CoordSequences associted with this object.void
paintData
(BiConsumer<TupleSequence, Paper> tuplePainter, Paper paper, DataSpec dataSpec, DataStore dataStore) Paints tuple-based data onto a Paper instance, possibly in parallel.void
rangeData
(BiConsumer<TupleSequence, Ranger> rangeFiller, Ranger ranger, DataSpec dataSpec, DataStore dataStore) Gathers range information from tuple-based data, possibly in parallel.boolean
Indicates whether an attempt will be made to split a top-level splittable in order to process it.Methods inherited from class uk.ac.starlink.ttools.plot2.SplitRunner
createBenchRunner, createDefaultRunner, createSequentialRunner, createStandardRunner
-
Field Details
-
DEFAULT
Standard instance for parallel processing. -
SEQUENTIAL
Always runs sequentially, no parallel processing. -
BENCH
Tries different implementations and logs timings to stdout.
-
-
Constructor Details
-
TupleRunner
Constructor.- Parameters:
runner
- provides basic behaviour
-
-
Method Details
-
willAttemptSplit
Description copied from class:SplitRunner
Indicates whether an attempt will be made to split a top-level splittable in order to process it. If it's too small for instance, false will be returned.- Specified by:
willAttemptSplit
in classSplitRunner<TupleSequence>
- Parameters:
tseq
- splittable- Returns:
- true iff processing will try to split content
-
collect
public <A> A collect(uk.ac.starlink.util.SplitCollector<TupleSequence, A> collector, Supplier<TupleSequence> tupleSupplier) Description copied from class:SplitRunner
Performs a collection operation. This usually does not do accumulator pooling.- Specified by:
collect
in classSplitRunner<TupleSequence>
- Parameters:
collector
- collectortupleSupplier
- supplier for splittable object to process- Returns:
- collected result
-
collectPool
public <A> A collectPool(uk.ac.starlink.util.SplitCollector<TupleSequence, A> collector, Supplier<TupleSequence> tupleSupplier) Description copied from class:SplitRunner
Performs a collection operation with a hint that accumulator pooling is recommended.- Specified by:
collectPool
in classSplitRunner<TupleSequence>
- Parameters:
collector
- collectortupleSupplier
- supplier for splittable object to process
-
paintData
public void paintData(BiConsumer<TupleSequence, Paper> tuplePainter, Paper paper, DataSpec dataSpec, DataStore dataStore) Paints tuple-based data onto a Paper instance, possibly in parallel. The suppliedtuplePainter
argument corresponds to methodSplitCollector.accumulate(S, A)
.- Parameters:
tuplePainter
- defines how a TupleSequence is painted onto paperpaper
- paper onto which painting will be donedataSpec
- data specdataStore
- data storage
-
rangeData
public void rangeData(BiConsumer<TupleSequence, Ranger> rangeFiller, Ranger ranger, DataSpec dataSpec, DataStore dataStore) Gathers range information from tuple-based data, possibly in parallel. The suppliedrangeFiller
argument corresponds to methodSplitCollector.accumulate(S, A)
.- Parameters:
rangeFiller
- defines how a TupleSequence is used to populate a rangerranger
- ranger to which the results will be writtendataSpec
- data specdataStore
- data storage
-
coordRunner
Returns a SplitRunner use with CoordSequences associted with this object.- Returns:
- coord runner
-