Class RowRunner


  • public class RowRunner
    extends java.lang.Object
    Manages potentially parallel processing of StarTable row data.
    Since:
    5 Aug 2020
    Author:
    Mark Taylor
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static RowRunner DEFAULT
      General purpose instance; will be parallel for suitable environments.
      static uk.ac.starlink.util.SplitPolicy DFLT_POLICY
      Default split policy.
      static RowRunner SEQUENTIAL
      Sequential-only instance; no parallel processing.
    • Constructor Summary

      Constructors 
      Constructor Description
      RowRunner​(uk.ac.starlink.util.SplitProcessor<?> processor)
      Constructor.
    • Field Detail

      • DFLT_POLICY

        public static final uk.ac.starlink.util.SplitPolicy DFLT_POLICY
        Default split policy.
      • DEFAULT

        public static final RowRunner DEFAULT
        General purpose instance; will be parallel for suitable environments.
      • SEQUENTIAL

        public static final RowRunner SEQUENTIAL
        Sequential-only instance; no parallel processing.
    • Constructor Detail

      • RowRunner

        public RowRunner​(uk.ac.starlink.util.SplitProcessor<?> processor)
        Constructor.
        Parameters:
        processor - processor that manages the executions
    • Method Detail

      • collect

        public <A> A collect​(RowCollector<A> collector,
                             StarTable table)
                      throws java.io.IOException
        Performs a collection operation on table rows.
        Parameters:
        collector - collector defining operation
        table - table supplying data
        Returns:
        result of collection
        Throws:
        java.io.IOException
      • createRowSplittable

        public RowSplittable createRowSplittable​(StarTable table)
                                          throws java.io.IOException
        Acquires a splittable row sequence from a table. The default implementation just calls StarTable.getRowSplittable(), but this may be overridden if required.
        Parameters:
        table - input table
        Returns:
        potentially splittable row sequence
        Throws:
        java.io.IOException
      • getSplitProcessor

        public uk.ac.starlink.util.SplitProcessor<RowSplittable> getSplitProcessor()
        Returns the processor on which this runner is based.
        Returns:
        processor