private static class ArchiveStreamCombiner.RelativeCombinedStream extends Object implements ArchiveDataStream
Modifier and Type | Field and Description |
---|---|
private ArrayDeque<ArchiveData> |
_buffer |
private Exception |
_exception |
private ArchiveDataSpecification |
_spec |
Constructor and Description |
---|
ArchiveStreamCombiner.RelativeCombinedStream(ArchiveDataStream[] streamsToCombine,
ArchiveDataSpecification spec) |
Modifier and Type | Method and Description |
---|---|
void |
abort()
Bricht die Übertragung von Datensätzen für diesen Ergebnisdatenstrom ab.
|
ArchiveDataSpecification |
getDataSpecification()
Bestimmt die Archivdatenspezifikation, die zu diesem Ergebnisdatenstrom geführt hat.
|
private static boolean |
shouldCount(ArchiveData aData)
Gibt zurück ob ein Datensatz bei Relativanfragen mitgezählt werden soll oder nicht.
|
ArchiveData |
take()
Entfernt einen Datensatz vom Ergebnisdatenstrom und gibt ihn zurück.
|
private final ArchiveDataSpecification _spec
private Exception _exception
private final ArrayDeque<ArchiveData> _buffer
public ArchiveStreamCombiner.RelativeCombinedStream(ArchiveDataStream[] streamsToCombine, ArchiveDataSpecification spec)
private static boolean shouldCount(ArchiveData aData)
aData
- Datumpublic ArchiveDataSpecification getDataSpecification()
ArchiveDataStream
getDataSpecification
in interface ArchiveDataStream
public ArchiveData take() throws InterruptedException, IOException, IllegalStateException
ArchiveDataStream
null
signalisiert werden.take
in interface ArchiveDataStream
null
, wenn alle Datensätze dieses Ergeebnisdatenstroms
abgefragt wurden.InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf den nächsten Datensatz
gewartet wurde.IOException
- Falls Probleme in der Kommunikation mit dem Archivsystem aufgetreten sind und noch
nicht alle Datensätze übertragen wurden.IllegalStateException
- Falls der Ergebnisdatenstrom mit der Methode ArchiveDataStream.abort()
abgebrochen wurde.public void abort()
ArchiveDataStream
ArchiveDataStream.take()
werden mit einer entsprechenden Exception quittiert.abort
in interface ArchiveDataStream