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 TupleRunnerTries different implementations and logs timings to stdout.static final TupleRunnerStandard instance for parallel processing.static final TupleRunnerAlways runs sequentially, no parallel processing. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<A> Acollect(uk.ac.starlink.util.SplitCollector<TupleSequence, A> collector, Supplier<TupleSequence> tupleSupplier) Performs a collection operation.<A> AcollectPool(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.voidpaintData(BiConsumer<TupleSequence, Paper> tuplePainter, Paper paper, DataSpec dataSpec, DataStore dataStore) Paints tuple-based data onto a Paper instance, possibly in parallel.voidrangeData(BiConsumer<TupleSequence, Ranger> rangeFiller, Ranger ranger, DataSpec dataSpec, DataStore dataStore) Gathers range information from tuple-based data, possibly in parallel.booleanIndicates 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:SplitRunnerIndicates 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:
willAttemptSplitin 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:SplitRunnerPerforms a collection operation. This usually does not do accumulator pooling.- Specified by:
collectin 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:SplitRunnerPerforms a collection operation with a hint that accumulator pooling is recommended.- Specified by:
collectPoolin 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 suppliedtuplePainterargument 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 suppliedrangeFillerargument 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
-