Package de.bsvrz.pua.prot.processing
Class ValueProvider
- java.lang.Object
-
- de.bsvrz.pua.prot.processing.ValueProvider
-
- Direct Known Subclasses:
RealArchiveElement,RealOnlineElement
public abstract class ValueProvider extends java.lang.ObjectAbstrakte Basisklassen für Klassen, die aktiv Daten sammeln.
-
-
Field Summary
Fields Modifier and Type Field Description protected DataInformationdataInformationMarkierungsinformation.protected ExtResultDatavalueZuletzt erhaltener Datensatz
-
Constructor Summary
Constructors Constructor Description ValueProvider(de.bsvrz.sys.funclib.losb.datk.ProtocolType protocolType, boolean isShown, boolean padData)
-
Method Summary
Modifier and Type Method Description abstract voidabort()Bricht das Sammeln der Daten ab.protected abstract booleanexecuteTake(long timeout)Holt den nächsten Datensatz und legt ihn invalueab.DataInformationgetDataInformation()Liefert die Markierungsinformation zurücklonggetMostRecentDataIndex()Liefert den Datenindex des zuletzt erhaltenen Datensatzes ab.longgetMostRecentTimeStamp()Liefert den Datenzeitstempel des zuletzt erhaltenen Datensatzes ab.longgetUsedDataIndex()Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf vongetValue()zurückgegeben wird.longgetUsedTimeStamp()Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf vongetValue()zurückgegeben wird.BaseDataSetgetValue()Liefert den Wert des Elements.abstract booleanhasNext()Zeigt an ob noch weitere Daten geliefert werden.booleanisShown()Zeigt ob der Wertebeschaffer zu einem Element gehört, das im Spalten-Bereich verwendet wird.booleanisWinner()voidlost()Dieses Objekt hat beim Verschränken nicht den kleinsten Zeitstempel.protected voidreset()Setzt das Objekt auf den Anfangszustand zurück.booleantake(long timeout)Holt den nächsten Datensatz.abstract booleanupdateDataInformation()Erzeugt die Markierungsinformation.voidwon()Dieses Objekt hat beim Verschränken den kleinsten Zeitstempel.
-
-
-
Field Detail
-
dataInformation
protected DataInformation dataInformation
Markierungsinformation.
-
value
protected ExtResultData value
Zuletzt erhaltener Datensatz
-
-
Constructor Detail
-
ValueProvider
public ValueProvider(de.bsvrz.sys.funclib.losb.datk.ProtocolType protocolType, boolean isShown, boolean padData)- Parameters:
protocolType- ProtokollartisShown- Wird das Element im Spalten-Bereich verwendet?trueElement wird im Spalten Bereich verwendet.padData-truefalls Daten aufgefüllt werden dürfen.
-
-
Method Detail
-
updateDataInformation
public abstract boolean updateDataInformation()
Erzeugt die Markierungsinformation.- Returns:
true: Es gibt einen Sprung im Datensatzindex. (Ist dies der Fall, muss muss ein leerer Datensatz eingefügt werden! Siehe TAnf V.1.1 S. 33, "Markierung Pot. Datenlücke"). Falls noch keine Daten vorliegen, wirdfalsezurückgegeben.
-
hasNext
public abstract boolean hasNext()
Zeigt an ob noch weitere Daten geliefert werden. Der Wert wird nur durch einen Aufruf vontake(long)aktualisiert.falsewird erst zurückgeliefert, wenn der Versuch weitere Daten mittelstake(long)abzurufen fehlschlägt.- Returns:
truefalls noch weitere Daten geliefert werden.falsesonst.
-
executeTake
protected abstract boolean executeTake(long timeout) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException, java.lang.InterruptedExceptionHolt den nächsten Datensatz und legt ihn invalueab.- Parameters:
timeout- Maximale Wartezeit. Wird die Wartezeit überschritten, so wird due Methode abgebrochen undfalsezurückgegeben. Ist dieser Parameter0so wird solange gewartet, bis Daten eintreffen.- Returns:
- True falls Daten empfangen wurde, false falls es innerhalb der vorgegebenen Wartezeit keine Daten gibt.
- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException- Fehler beim Datenempfang.java.lang.InterruptedException- Warten auf Antwortdatensatz wurde unterbrochen.
-
take
public boolean take(long timeout) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException, java.lang.InterruptedExceptionHolt den nächsten Datensatz. Wartet, bis Daten empfangen werden.- Parameters:
timeout- Maximale Wartezeit. Wird die Wartezeit überschritten, so wird due Methode abgebrochen undfalsezurückgegeben. Ist dieser Parameter0so wird solange gewartet, bis Daten eintreffen.- Returns:
- True falls Daten empfangen wurde, false falls es innerhalb der vorgegebenen Wartezeit keine Daten gibt.
- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException- Fehler beim Datenempfang.java.lang.InterruptedException- Warten auf Antwortdatensatz wurde unterbrochen.
-
getValue
public BaseDataSet getValue()
Liefert den Wert des Elements. Je nach Ergebnis vonisWinner()wird der aktuellste Wert oder ein aufgefüllter Wert zurückgegeben.- Returns:
- Wert des Elements.
- See Also:
BaseDataSet.isPaddedData()
-
getDataInformation
public DataInformation getDataInformation()
Liefert die Markierungsinformation zurück- Returns:
- Markierungsinformation
-
abort
public abstract void abort()
Bricht das Sammeln der Daten ab.
-
lost
public void lost()
Dieses Objekt hat beim Verschränken nicht den kleinsten Zeitstempel. Der nächste Aufruf vongetValue()muss den vorletzten, zum Auffüllen zu verwendenden Datensatz zurückgeben, und nicht den aktuellen.
-
won
public void won()
Dieses Objekt hat beim Verschränken den kleinsten Zeitstempel. Falls der Wert des Elements zum Auffüllen tauglich ist, wird dieser gespeichert. Sonst wird er verworfen, d.h. es existiert kein auffüllbarer Datensatz für dieses Element mehr.- See Also:
DataInformation.dataForPadding()
-
isWinner
public boolean isWinner()
- Returns:
truefalls das Element einen minimalen Zeitstempel besitzt.falsesonst.
-
getMostRecentTimeStamp
public long getMostRecentTimeStamp()
Liefert den Datenzeitstempel des zuletzt erhaltenen Datensatzes ab.- Returns:
- Zeitstempel. Wurde kein Datensatz erhalten, so wird
Long.MAX_VALUEzurückgegeben
-
getMostRecentDataIndex
public long getMostRecentDataIndex()
Liefert den Datenindex des zuletzt erhaltenen Datensatzes ab.- Returns:
- Zeitstempel. Wurde kein Datensatz erhalten, so wird der Wert
-1zurückgegeben.
-
getUsedTimeStamp
public long getUsedTimeStamp()
Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf vongetValue()zurückgegeben wird.- Returns:
- Zeitstempel. Wurde kein Datensatz erhalten, so wird
Long.MAX_VALUEzurückgegeben
-
getUsedDataIndex
public long getUsedDataIndex()
Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf vongetValue()zurückgegeben wird.- Returns:
- Zeitstempel. Wurde kein Datensatz erhalten, so wird der Wert
-1zurückgegeben.
-
isShown
public boolean isShown()
Zeigt ob der Wertebeschaffer zu einem Element gehört, das im Spalten-Bereich verwendet wird.- Returns:
trueElement wird im Spalten Bereich verwendet.falsesonst.
-
reset
protected void reset()
Setzt das Objekt auf den Anfangszustand zurück. Methode sollte zu Beginn eines neuen Intervalls aufgerufen werden, damit die Markierungsinformation und die Daten zum Auffüllen zurückgesetzt werden.
-
-