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.Object
Abstrakte Basisklassen für Klassen, die aktiv Daten sammeln.
-
-
Field Summary
Fields Modifier and Type Field Description protected DataInformation
dataInformation
Markierungsinformation.protected ExtResultData
value
Zuletzt 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 void
abort()
Bricht das Sammeln der Daten ab.protected abstract boolean
executeTake(long timeout)
Holt den nächsten Datensatz und legt ihn invalue
ab.DataInformation
getDataInformation()
Liefert die Markierungsinformation zurücklong
getMostRecentDataIndex()
Liefert den Datenindex des zuletzt erhaltenen Datensatzes ab.long
getMostRecentTimeStamp()
Liefert den Datenzeitstempel des zuletzt erhaltenen Datensatzes ab.long
getUsedDataIndex()
Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf vongetValue()
zurückgegeben wird.long
getUsedTimeStamp()
Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf vongetValue()
zurückgegeben wird.BaseDataSet
getValue()
Liefert den Wert des Elements.abstract boolean
hasNext()
Zeigt an ob noch weitere Daten geliefert werden.boolean
isShown()
Zeigt ob der Wertebeschaffer zu einem Element gehört, das im Spalten-Bereich verwendet wird.boolean
isWinner()
void
lost()
Dieses Objekt hat beim Verschränken nicht den kleinsten Zeitstempel.protected void
reset()
Setzt das Objekt auf den Anfangszustand zurück.boolean
take(long timeout)
Holt den nächsten Datensatz.abstract boolean
updateDataInformation()
Erzeugt die Markierungsinformation.void
won()
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?true
Element wird im Spalten Bereich verwendet.padData
-true
falls 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, wirdfalse
zurückgegeben.
-
hasNext
public abstract boolean hasNext()
Zeigt an ob noch weitere Daten geliefert werden. Der Wert wird nur durch einen Aufruf vontake(long)
aktualisiert.false
wird erst zurückgeliefert, wenn der Versuch weitere Daten mittelstake(long)
abzurufen fehlschlägt.- Returns:
true
falls noch weitere Daten geliefert werden.false
sonst.
-
executeTake
protected abstract boolean executeTake(long timeout) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException, java.lang.InterruptedException
Holt den nächsten Datensatz und legt ihn invalue
ab.- Parameters:
timeout
- Maximale Wartezeit. Wird die Wartezeit überschritten, so wird due Methode abgebrochen undfalse
zurückgegeben. Ist dieser Parameter0
so 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.InterruptedException
Holt den nächsten Datensatz. Wartet, bis Daten empfangen werden.- Parameters:
timeout
- Maximale Wartezeit. Wird die Wartezeit überschritten, so wird due Methode abgebrochen undfalse
zurückgegeben. Ist dieser Parameter0
so 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:
true
falls das Element einen minimalen Zeitstempel besitzt.false
sonst.
-
getMostRecentTimeStamp
public long getMostRecentTimeStamp()
Liefert den Datenzeitstempel des zuletzt erhaltenen Datensatzes ab.- Returns:
- Zeitstempel. Wurde kein Datensatz erhalten, so wird
Long.MAX_VALUE
zurückgegeben
-
getMostRecentDataIndex
public long getMostRecentDataIndex()
Liefert den Datenindex des zuletzt erhaltenen Datensatzes ab.- Returns:
- Zeitstempel. Wurde kein Datensatz erhalten, so wird der Wert
-1
zurü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_VALUE
zurü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
-1
zurückgegeben.
-
isShown
public boolean isShown()
Zeigt ob der Wertebeschaffer zu einem Element gehört, das im Spalten-Bereich verwendet wird.- Returns:
true
Element wird im Spalten Bereich verwendet.false
sonst.
-
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.
-
-