|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.dav.daf.main.impl.archive.request.Query
class Query
Diese Klasse stellt alle Methoden zur Verfügung um eine Archivanfrage zu stellen, sie wird der Klasse StreamedArchiveRequester
benutzt.
Nested Class Summary | |
---|---|
private static class |
Query.DirectorStreamDemultiplexer
|
Field Summary | |
---|---|
private ArchiveQueryID |
_archiveRequestID
Dieses Objekt identifiziert die Archivanfrage eindeutig. |
private DataStream[] |
_arrayOfStreams
Hier werden alle streams, die zu einer Archivanfrage gehören, gespeichert. |
private boolean |
_blocking
Solange diese Variable true ist, werden alle Anfragen an die Query blockiert da das Archiv noch nicht geantwortet hat. |
private int |
_blockingFactor
Bestimmt den blockingFactor des StreamDemultiplexers. |
private static Debug |
_debug
DebugLogger für Debug-Ausgaben |
private short |
_defaultSimulationVariant
|
private String |
_errorMessage
Falls es zu einem Fehler gekommen ist, zu welchem. |
private int |
_numberOfFinishedStreams
Diese Variable speichert, wie viele Streams bisher beendet wurden, entweder durch empfang des null-Pakets oder durch abort. |
private int |
_numberOfStreams
Wieviele Streams gehören zu der Archivanfrage. |
private ArchiveQueryPriority |
_priority
|
private int |
_receiveBufferSize
Diese Variable bestimmt die Größe des Empfangspuffers (StreamDemultiplexer). |
private boolean |
_requestSuccessful
Konnte die Anfrage zum Archiv durchgeführt werden |
private List |
_spec
ArchiveDataSpecification einer Anfrage in einer Liste speichern |
private StreamDemultiplexer |
_streamDemultiplexer
|
(package private) StreamedArchiveRequester |
_streamedArchiveRequester
|
Constructor Summary | |
---|---|
Query(ArchiveQueryID archiveRequestID,
ArchiveQueryPriority priority,
ArchiveDataSpecification spec,
int receiveBufferSize,
StreamedArchiveRequester streamedArchiveRequester,
short defaultSimulationVariant)
Archivanfrage mit einem Objekt |
|
Query(ArchiveQueryID archiveRequestID,
ArchiveQueryPriority priority,
List spec,
int receiveBufferSize,
StreamedArchiveRequester streamedArchiveRequester,
short defaultSimulationVariant)
|
Method Summary | |
---|---|
void |
archiveDataResponse(byte[] data)
Diese Methode verwaltet Nutzdaten, die für eine Archivanfrage empfangen wurden. |
(package private) void |
countFinishedStream()
Diese Methode wird von einem Objekt der Klasse Query aufgerufen sobald der Stream des Objekts ein null-Paket empfängt oder die Empfängerapplikation abort aufruft. |
ArchiveQueryID |
getArchiveRequestID()
Die Rückgabe identifiziert eine Archivanfrage. |
String |
getErrorMessage()
Bestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war. |
ArchiveDataStream[] |
getStreams()
Diese Methode gibt alle Streams, die zu einer Archivanfrage gehören, zurück. |
void |
initiateArchiveRequest()
Mit dieser Methode wird die initiale Archivanfrage verschickt. |
void |
initiateArchiveResponse(byte[] queryResponse)
Diese Methode wird vom StreamedArchivRequester aufgerufen, sobald das Archiv auf die erste Archivanfrage eines Auftrags antwortet. |
boolean |
isRequestSuccessful()
Diese Methode blockiert solange, bis das Archiv auf die erste Archivanfrage geantwortet hat. |
(package private) void |
killAllStreams()
Diese Methode benachrichtigt den StreamDemultiplexer, dass ein Fehler aufgetreten ist und das alle Streams beendet werden müssen. |
void |
lostArchive()
Die Verbindung zum Archive wurde unterbrochen, alle Streams werden abgebrochen und liefern beim Aufruf der Methode DataStream.take() eine
Exception. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
StreamedArchiveRequester _streamedArchiveRequester
private final ArchiveQueryID _archiveRequestID
private DataStream[] _arrayOfStreams
private final ArchiveQueryPriority _priority
private final List _spec
private StreamDemultiplexer _streamDemultiplexer
private final int _numberOfStreams
private int _numberOfFinishedStreams
private final int _receiveBufferSize
StreamedArchiveRequester.setReceiveBufferSize(int)
gesetzt werden, für diese Anfrage ist der
Wert allerdings konstant.
private boolean _requestSuccessful
private String _errorMessage
private boolean _blocking
private int _blockingFactor
private static final Debug _debug
private final short _defaultSimulationVariant
Constructor Detail |
---|
public Query(ArchiveQueryID archiveRequestID, ArchiveQueryPriority priority, ArchiveDataSpecification spec, int receiveBufferSize, StreamedArchiveRequester streamedArchiveRequester, short defaultSimulationVariant)
archiveRequestID
- eindeutige Identifizierung der Anfrage, diese wird benötigt um Archivantworten an das Objekt weiterzuleitenpriority
- Priorität der Anfragespec
- ArchivanfragereceiveBufferSize
- Größe des Empfangspuffers (in Byte)streamedArchiveRequester
- Objekt über das Archivanfragen verschickt werden könnendefaultSimulationVariant
- Falls keine Simulationsvariante gesetzt wurde wird dieser Wert als default benutzt.public Query(ArchiveQueryID archiveRequestID, ArchiveQueryPriority priority, List spec, int receiveBufferSize, StreamedArchiveRequester streamedArchiveRequester, short defaultSimulationVariant)
archiveRequestID
- eindeutige Identifizierung der Anfrage, diese wird benötigt um Archivantworten an das Objekt weiterzuleitenpriority
- Priorität der Anfragespec
- ArchivanfragereceiveBufferSize
- Größe des Empfangspuffers (in Byte)streamedArchiveRequester
- Objekt über das Archivanfragen verschickt werden könnendefaultSimulationVariant
- Falls keine Simulationsvariante gesetzt wurde wird dieser Wert als default benutzt.Method Detail |
---|
public void initiateArchiveRequest()
public boolean isRequestSuccessful() throws InterruptedException
isRequestSuccessful
in interface ArchiveQueryResult
InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende
Antwortnachricht aus dem Archivsystem gewartet wurde.public String getErrorMessage() throws InterruptedException
ArchiveQueryResult
getErrorMessage
in interface ArchiveQueryResult
InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende
Antwortnachricht aus dem Archivsystem gewartet wurde.public ArchiveDataStream[] getStreams() throws IllegalStateException, InterruptedException
getStreams
in interface ArchiveDataQueryResult
IllegalStateException
- Die Archivanfrage konnte nicht vom Archiv bearbeitet werden, somit durfte diese Methode nicht aufgerufen werden
InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende
Antwortnachricht aus dem Archivsystem gewartet wurde.ArchiveRequestManager.request(ArchiveQueryPriority,ArchiveDataSpecification)
,
ArchiveRequestManager.request(ArchiveQueryPriority, java.util.List)
public void initiateArchiveResponse(byte[] queryResponse)
queryResponse
- Die Antwort des Archivs, die Informationen im byte-Array codiertpublic void archiveDataResponse(byte[] data)
data
- Nutzdaten für eine Archivanfragevoid countFinishedStream()
void killAllStreams()
public void lostArchive()
DataStream.take()
eine
Exception.
public ArchiveQueryID getArchiveRequestID()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |