Package uk.ac.starlink.ttools.calc
Class CacheRowPipe
- java.lang.Object
-
- uk.ac.starlink.ttools.calc.CacheRowPipe
-
- All Implemented Interfaces:
uk.ac.starlink.table.RowPipe,uk.ac.starlink.table.TableSink
public class CacheRowPipe extends java.lang.Object implements uk.ac.starlink.table.RowPipeRowPipe implementation which caches the data to provide a random-access StarTable.The current implementation simply delegates to a
OnceRowPipeand caches the result before returning it fromwaitForStarTable. This is crude, and means that the output rows don't start to come until all the input rows have been written to the pipe (so there's not much point using a pipe). A future implementation should get smarter with threads to improve this.- Since:
- 14 Oct 2011
- Author:
- Mark Taylor
-
-
Constructor Summary
Constructors Constructor Description CacheRowPipe()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacceptMetadata(uk.ac.starlink.table.StarTable meta)voidacceptRow(java.lang.Object[] row)voidendRows()voidsetError(java.io.IOException err)uk.ac.starlink.table.StarTablewaitForStarTable()Returns a multiply-readable random access table.
-
-
-
Method Detail
-
acceptMetadata
public void acceptMetadata(uk.ac.starlink.table.StarTable meta) throws uk.ac.starlink.table.TableFormatException- Specified by:
acceptMetadatain interfaceuk.ac.starlink.table.TableSink- Throws:
uk.ac.starlink.table.TableFormatException
-
acceptRow
public void acceptRow(java.lang.Object[] row) throws java.io.IOException- Specified by:
acceptRowin interfaceuk.ac.starlink.table.TableSink- Throws:
java.io.IOException
-
endRows
public void endRows() throws java.io.IOException- Specified by:
endRowsin interfaceuk.ac.starlink.table.TableSink- Throws:
java.io.IOException
-
setError
public void setError(java.io.IOException err)
- Specified by:
setErrorin interfaceuk.ac.starlink.table.RowPipe
-
waitForStarTable
public uk.ac.starlink.table.StarTable waitForStarTable() throws java.io.IOExceptionReturns a multiply-readable random access table.- Specified by:
waitForStarTablein interfaceuk.ac.starlink.table.RowPipe- Returns:
- random access, multiply readable table with the same content as the rows accepted by this pipe
- Throws:
java.io.IOException
-
-