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.RowPipe
RowPipe implementation which caches the data to provide a random-access StarTable.The current implementation simply delegates to a
OnceRowPipe
and 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 void
acceptMetadata(uk.ac.starlink.table.StarTable meta)
void
acceptRow(java.lang.Object[] row)
void
endRows()
void
setError(java.io.IOException err)
uk.ac.starlink.table.StarTable
waitForStarTable()
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:
acceptMetadata
in 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:
acceptRow
in interfaceuk.ac.starlink.table.TableSink
- Throws:
java.io.IOException
-
endRows
public void endRows() throws java.io.IOException
- Specified by:
endRows
in interfaceuk.ac.starlink.table.TableSink
- Throws:
java.io.IOException
-
setError
public void setError(java.io.IOException err)
- Specified by:
setError
in interfaceuk.ac.starlink.table.RowPipe
-
waitForStarTable
public uk.ac.starlink.table.StarTable waitForStarTable() throws java.io.IOException
Returns a multiply-readable random access table.- Specified by:
waitForStarTable
in 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
-
-