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, recordLineagelastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEYBUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZEid, 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, getReader, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, isSaveLineage, peek, pop, push, read, setSaveLineage, skipdecrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toStringaddElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescriptionprotected 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
DataEndpointopen in class DataEndpointDataExceptionpublic void close()
throws DataException
DataEndpointclose in class DataEndpointDataExceptionprotected Record readImpl() throws Throwable
DataReaderDataReader. 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 DataReaderThrowableprotected void onTheadFinished(AsyncMultiReader.ReaderThread finishedThread)
public DataException addExceptionProperties(DataException exception)
EndpointDataException. Since this method is called whenever an
exception is thrown, subclasses should override it to add their specific information.addExceptionProperties in class DataReaderCopyright (c) 2006-2025 North Concepts Inc. All Rights Reserved.