|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.pua.prot.processing.archivebuffer.ArchiveUser
public class ArchiveUser
Kapselt alle Informationen die zum Stellen von Archivanfragen nötig sind.
Die Klasse ermöglicht es, Standardparameter für Archivanfragen festzulegen.
Es wird nur einmal eine Archivanfrage pro Datenidentifikation gestellt.
Dabei wird jedoch vorausgesetzt, dass die RealArchiveElement
Objekte
alle direkt hintereinander nach dem gleichen Wert anfragen. Es ist nicht möglich, dass eines dieser Objekte z.B. drei Werte aus dem Archivsystem
holt, solange ein anderes Objekt nur einen Wert abgeholt hat. Dieses Fehlverhalten wird von dieser Klasse nicht
abgefangen!
Durch Aufruf der setArchiveDataKind(ArchiveDataKind)
und setTimeSpec(ArchiveTimeSpecification)
werden
die bisherigen Anmeldungen verworfen.
Für Relativanfragen gilt diese Regelung nicht: Hier wird immer eine neue Relativanfrage gestellt.
Durch den Aufruf von request(Object, DataDescription, SystemObject)
wird keine Archivanfrage gestellt,
sondern es werden alle nötigen Archivanfragen gesammelt. Erst der Aufruf von execute()
fasst alle bisher gesammelten
Andragen pro Objekttyp in einer Archivanfrage zusammen. (D.h. alle für alle Datenidentifikationen mit dem gleichen Objekttyp
wir eine Anfrage gestellt)
Wichtig: Die Methoden dieser Klasse sind nicht Thread safe!
Constructor Summary | |
---|---|
ArchiveUser(ArchiveRequestManager arm,
ArchiveTimeSpecification timeSpec,
ArchiveDataKind dataKind,
ArchiveOrder sortOrder,
ArchiveRequestOption requestOptions)
Konstruktor |
Method Summary | |
---|---|
void |
abort()
Beendet alle ausstehenden Archivanfrage. |
void |
execute()
Sendet die bisher in request(Object, DataDescription, SystemObject) gesammelten Archivanfragen
in einer Anfrage an das Archivsystem. |
void |
request(java.lang.Object subscriber,
DataDescription dataDescription,
SystemObject object)
Stellt eine Anfrage ans Archivsystem. |
ArchiveDataQueryResult |
requestRelative(DataDescription dataDescription,
SystemObject object,
long timeStamp)
Liefert genau einen Archivdatensatz mit kleineren-gleichen Datenzeitstempel als dem übergebenen Intervallende |
void |
setArchiveDataKind(ArchiveDataKind adk)
Setzt die Datenart, die abgefragt werden soll. |
void |
setTimeSpec(ArchiveTimeSpecification timeSpec)
Setzt die Zeitspezifikation. |
ArchiveData |
take(java.lang.Object subscriber)
Liefert einen Archivdatensatz. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ArchiveUser(ArchiveRequestManager arm, ArchiveTimeSpecification timeSpec, ArchiveDataKind dataKind, ArchiveOrder sortOrder, ArchiveRequestOption requestOptions)
arm
- Anfrageschnittstelle zum ArchivtimeSpec
- Zeitbereich der abgefragt wirddataKind
- Datentyp (online, nachgeliefert, etc.)sortOrder
- Sortierung der nachgelieferten DatenrequestOptions
- Anfrageoptionen: Zustand oder DeltaanfrageMethod Detail |
---|
public void request(java.lang.Object subscriber, DataDescription dataDescription, SystemObject object)
subscriber
- Abonnent der ArchivdatendataDescription
- Datenstrukturobject
- Objektpublic ArchiveData take(java.lang.Object subscriber) throws java.lang.InterruptedException, java.lang.IllegalStateException, java.io.IOException
subscriber
- Interessent
java.lang.InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf den nächsten Datensatz gewartet wurde.
java.io.IOException
- Ein-/Ausgabefehler
java.lang.IllegalStateException
- Falls der Ergebnisdatenstrom mit der Methode abort abgebrochen wurde.public ArchiveDataQueryResult requestRelative(DataDescription dataDescription, SystemObject object, long timeStamp)
dataDescription
- Datenstrukturobject
- ObjekttimeStamp
- Intervallende
public void setTimeSpec(ArchiveTimeSpecification timeSpec)
timeSpec
- Zeitspezifikationpublic void setArchiveDataKind(ArchiveDataKind adk)
adk
- Archivdatenart. (Online Daten, nachgeliefertde Daten, etc.)public void abort()
public void execute() throws FailureException, java.lang.InterruptedException
request(Object, DataDescription, SystemObject)
gesammelten Archivanfragen
in einer Anfrage an das Archivsystem.
FailureException
- Archivsystem ist nicht erreichbar.
java.lang.InterruptedException
- Thread wird abgebrochen
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |