public class AsyncMultiReader extends DataReader
DataReader.read()
method is called, it will either return the next record that was put into the buffer asynchronously from a source reader
or block until data is available in the buffer. This reader makes no guarantees as to the order of records returned.Modifier and Type | Class and Description |
---|---|
class |
AsyncMultiReader.ReaderThread |
DataEndpoint.State
Modifier and Type | Field and Description |
---|---|
protected LinkedBlockingQueue<Record> |
buffer |
protected List<AsyncMultiReader.ReaderThread> |
threads |
fieldLineage, recordLineage
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEY
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZE
id, log, name, TIMESTAMP_FORMAT
Constructor and Description |
---|
AsyncMultiReader(DataReader... readers) |
Modifier and Type | Method and Description |
---|---|
AsyncMultiReader |
add(DataReader... readers) |
DataException |
addExceptionProperties(DataException exception)
Adds this endpoint's current state to a
DataException . |
void |
close()
Indicates that this endpoint has finished reading or writing.
|
Throwable |
getException() |
boolean |
isFailOnException() |
protected void |
onTheadFinished(AsyncMultiReader.ReaderThread finishedThread) |
void |
open()
Makes this endpoint ready for reading or writing.
|
protected Record |
readImpl()
Overridden by subclasses to read the next record from this
DataReader . |
AsyncMultiReader |
setFailOnException(boolean failOnException) |
addLineage, available, getBufferSize, getNestedEndpoint, getNestedReader, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, isSaveLineage, peek, pop, push, read, setSaveLineage, skip
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toString
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
protected final LinkedBlockingQueue<Record> buffer
protected final List<AsyncMultiReader.ReaderThread> threads
public AsyncMultiReader(DataReader... readers)
public AsyncMultiReader add(DataReader... readers)
public boolean isFailOnException()
public AsyncMultiReader setFailOnException(boolean failOnException)
public Throwable getException()
public void open() throws DataException
DataEndpoint
open
in class DataEndpoint
DataException
public void close() throws DataException
DataEndpoint
close
in class DataEndpoint
DataException
protected Record readImpl() throws Throwable
DataReader
DataReader
. The default
implementation of DataReader.read()
now insures that this method will not be called again after it returns
a null
.
If no record is available, null
will be returned.
readImpl
in class DataReader
Throwable
protected void onTheadFinished(AsyncMultiReader.ReaderThread finishedThread)
public DataException addExceptionProperties(DataException exception)
Endpoint
DataException
. Since this method is called whenever an
exception is thrown, subclasses should override it to add their specific information.addExceptionProperties
in class DataReader
Copyright (c) 2006-2024 North Concepts Inc. All Rights Reserved.