de.bsvrz.dav.daf.main.impl.archive.request
Class DataStream

java.lang.Object
  extended by de.bsvrz.dav.daf.main.impl.archive.request.DataStream
All Implemented Interfaces:
ArchiveDataStream

 class DataStream
extends Object
implements ArchiveDataStream

Diese Klasse implementiert das Interface ArchiveDataStream. Die Datensätze, die empfangen wurden, können gepackt sein, diese Klasse entpackt die Datensätze und stellt sie als Objekte zur Verfügung. Diese Klasse wird von der Klasse StreamedArchiveRequester benutzt.

Author:
Kappich+Kniß Systemberatung Aachen (K2S), Achim Wullenkord (AW)

Field Summary
private  ArchiveDataSpecification _archiveDataSpecification
           
private static Debug _debug
          DebugLogger für Debug-Ausgaben
private  int _indexOfStream
          Stream von dem die Daten geholt werden.
private  Query _query
          Dies ist die Anfrage, zu der dieser Stream gehört.
private  StreamDemultiplexer _streamDemultiplexer
           
 
Constructor Summary
DataStream(int indexOfStream, StreamDemultiplexer streamDemultiplexer, ArchiveDataSpecification archiveDataSpecification, Query query)
          Objekt, dass einen Stream repräsentiert.
 
Method Summary
 void abort()
          Diese Methode wird aufgerufen, falls keine Datensätze mehr benötigt werden.
 ArchiveDataSpecification getDataSpecification()
          Bestimmt die Archivdatenspezifikation, die zu diesem Ergebnisdatenstrom geführt hat.
 ArchiveData take()
          Diese Methode stellt einen archivierten Datensatz zur Verfügung.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_streamDemultiplexer

private final StreamDemultiplexer _streamDemultiplexer

_indexOfStream

private final int _indexOfStream
Stream von dem die Daten geholt werden.


_query

private final Query _query
Dies ist die Anfrage, zu der dieser Stream gehört. Der Anfrage(_query) wird gemeldet, dass der Stream keine Archivdaten mehr vom Archiv empfängt (null-Paket) oder das der Benutzer den Stream mit abort abgebrochen hat.


_archiveDataSpecification

private final ArchiveDataSpecification _archiveDataSpecification

_debug

private static final Debug _debug
DebugLogger für Debug-Ausgaben

Constructor Detail

DataStream

public DataStream(int indexOfStream,
                  StreamDemultiplexer streamDemultiplexer,
                  ArchiveDataSpecification archiveDataSpecification,
                  Query query)
Objekt, dass einen Stream repräsentiert.

Parameters:
indexOfStream - Index des Streams
streamDemultiplexer - Objekt über das Datensätze angefordert werden können
archiveDataSpecification - Siehe Klassenbeschreibung
query - Archivanfrage, die zu diesem Objekt gehört
Method Detail

getDataSpecification

public ArchiveDataSpecification getDataSpecification()
Description copied from interface: ArchiveDataStream
Bestimmt die Archivdatenspezifikation, die zu diesem Ergebnisdatenstrom geführt hat.

Specified by:
getDataSpecification in interface ArchiveDataStream
Returns:
Archivdatenspezifikation, die zu diesem Ergebnisdatenstrom geführt hat.

take

public ArchiveData take()
                 throws ClosedChannelException,
                        InterruptedException,
                        ProtocolException
Diese Methode stellt einen archivierten Datensatz zur Verfügung. Der Datensatz kann dabei vom Archiv gepackt worden sein, diese Methode wird den Datensatz entpacken.

Specified by:
take in interface ArchiveDataStream
Returns:
archivierter Datensatz
Throws:
ClosedChannelException - Die Verbindung zum DaV wurde unterbrochen
InterruptedException - Der Thread, der sich um die Verwaltung des Datensatzempfangs kümmert wurde mit Interrupt abgebrochen
ProtocolException - Ein Datensatz wurde entweder doppelt empfangen oder fehlt

abort

public void abort()
Diese Methode wird aufgerufen, falls keine Datensätze mehr benötigt werden.

Specified by:
abort in interface ArchiveDataStream