Package uk.ac.starlink.ttools.plot2.data
Class TupleRunner
- java.lang.Object
-
- uk.ac.starlink.ttools.plot2.SplitRunner<TupleSequence>
-
- uk.ac.starlink.ttools.plot2.data.TupleRunner
-
public class TupleRunner extends SplitRunner<TupleSequence>
SplitRunner subclass for use with TupleSequences.- Since:
- 17 Sep 2019
- Author:
- Mark Taylor
-
-
Field Summary
Fields Modifier and Type Field Description static TupleRunnerBENCHTries different implementations and logs timings to stdout.static TupleRunnerDEFAULTStandard instance for parallel processing.static TupleRunnerSEQUENTIALAlways runs sequentially, no parallel processing.
-
Constructor Summary
Constructors Constructor Description TupleRunner(SplitRunner<?> runner)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <A> Acollect(uk.ac.starlink.util.SplitCollector<TupleSequence,A> collector, java.util.function.Supplier<TupleSequence> tupleSupplier)Performs a collection operation.<A> AcollectPool(uk.ac.starlink.util.SplitCollector<TupleSequence,A> collector, java.util.function.Supplier<TupleSequence> tupleSupplier)Performs a collection operation with a hint that accumulator pooling is recommended.SplitRunner<CoordSequence>coordRunner()Returns a SplitRunner use with CoordSequences associted with this object.voidpaintData(java.util.function.BiConsumer<TupleSequence,Paper> tuplePainter, Paper paper, DataSpec dataSpec, DataStore dataStore)Paints tuple-based data onto a Paper instance, possibly in parallel.voidrangeData(java.util.function.BiConsumer<TupleSequence,Ranger> rangeFiller, Ranger ranger, DataSpec dataSpec, DataStore dataStore)Gathers range information from tuple-based data, possibly in parallel.booleanwillAttemptSplit(TupleSequence tseq)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 Detail
-
DEFAULT
public static final TupleRunner DEFAULT
Standard instance for parallel processing.
-
SEQUENTIAL
public static final TupleRunner SEQUENTIAL
Always runs sequentially, no parallel processing.
-
BENCH
public static final TupleRunner BENCH
Tries different implementations and logs timings to stdout.
-
-
Constructor Detail
-
TupleRunner
public TupleRunner(SplitRunner<?> runner)
Constructor.- Parameters:
runner- provides basic behaviour
-
-
Method Detail
-
willAttemptSplit
public boolean willAttemptSplit(TupleSequence tseq)
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, java.util.function.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, java.util.function.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(java.util.function.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(java.util.function.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
public SplitRunner<CoordSequence> coordRunner()
Returns a SplitRunner use with CoordSequences associted with this object.- Returns:
- coord runner
-
-