Interface OnlineDatensatz<T extends OnlineDatum>
-
- Type Parameters:
T
- Der Typ des Datums den der Datensatz sichert.
- All Superinterfaces:
Datensatz<T>
,KonfigurationsObjekt
,SystemObjekt
- All Known Subinterfaces:
ParameterDatensatz<T>
- All Known Implementing Classes:
AbstractOnlineDatensatz
,AbstractParameterDatensatz
public interface OnlineDatensatz<T extends OnlineDatum> extends Datensatz<T>
Schnittstelle für Onlinedatensätze.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
OnlineDatensatz.Status
Die Statuscodes der Sendesteuerung des Datenverteilers alsEnum
.
-
Method Summary
Modifier and Type Method Description void
abmeldenSender(Aspekt asp)
Meldet eine eventuell vorhandene Anmeldung als Sender oder Quelle wieder ab.void
addSendeSteuerungListener(Aspekt asp, short simulationsVariante, SendeSteuerungListener listener)
Registriert einen Listener für eine bestimmte Simulationsvariante.void
addSendeSteuerungListener(Aspekt asp, SendeSteuerungListener listener)
Registriert einen Listener ür die Sendesteuerung.void
addUpdateListener(Aspekt asp, short simulationsVariante, DatensatzUpdateListener listener)
Registriert einen Listener für eine bestimmte Simulationsvariante.void
addUpdateListener(Aspekt asp, DatensatzUpdateListener l)
Registriert einen Listener.void
anmeldenQuelle(Aspekt asp, T datum)
Meldet den Datensatz als Quelle am Datenverteiler an und versendet den übergebenen Datensatz.void
anmeldenSender(Aspekt asp)
Meldet den Datensatz als Sender oder Quelle am Datenverteiler an.java.util.List<T>
getArchivdaten(Aspekt asp, long zeitstempel, int anzahlDatensaetze, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Liefert eine beliebige Anzahl an Archivdatensätzen vor einem definierten Zeitpunkt.java.util.List<T>
getArchivdaten(Aspekt asp, com.bitctrl.util.Interval intervall, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Ruft Archivdaten in einen Rutsch ab.java.util.Iterator<T>
getArchivdatenIterator(Aspekt asp, long zeitstempel, int anzahlDatensaetze, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Erzeugt aus den Parametern eine äquivalente Archivanfrage für eine bestimmte Anzahl Datensätze vor einem Endzeitpunkt.java.util.Iterator<T>
getArchivdatenIterator(Aspekt asp, com.bitctrl.util.Interval intervall, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Erzeugt aus den Parametern eine äquivalente Archivanfrage für einen Zeitraum.java.util.Collection<? extends Aspekt>
getAspekte()
Gibt die verfügbaren Aspekte zurück.T
getDatum(Aspekt asp, long unsubscriptionIntervall)
Gibt die aktuellen Daten des Datensatzes zurück.T
getSingleDatum(Aspekt asp)
Gibt die aktuellen Daten des Datensatzes zurück.OnlineDatensatz.Status
getStatusSendesteuerung(Aspekt asp)
Fragt, ob der Datensatz als Sender oder Quelle Daten senden darf.boolean
isAngemeldetSender(Aspekt asp)
Fragt, ob der Datensatz als Sender oder Quelle angemeldet ist.boolean
isAutoUpdate(Aspekt asp)
Liest das FlagautoUpdate
.boolean
isQuelle(Aspekt asp)
Gibt das Flagquelle
zurück.boolean
isSenke(Aspekt asp)
Gibt das Flagsenke
zurück.void
removeSendeSteuerungListener(Aspekt asp, short simulationsVariante, SendeSteuerungListener listener)
Deregistriert einen Listener.void
removeSendeSteuerungListener(Aspekt asp, SendeSteuerungListener listener)
Deregistriert einen Listener.void
removeUpdateListener(Aspekt asp, short simulationsVariante, DatensatzUpdateListener listener)
Deregistriert einen Listener.void
removeUpdateListener(Aspekt asp, DatensatzUpdateListener l)
Deregistriert einen Listener.void
sendeDatum(Aspekt asp, T datum)
Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden.void
sendeDatum(Aspekt asp, T datum, long timeout)
Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden.void
setQuelle(Aspekt asp, boolean quelle)
Legt fest, ob Anmeldungen als Quelle durchgeführt werden sollen.void
setSenke(Aspekt asp, boolean senke)
Legt fest, ob Anmeldungen als Senke durchgeführt werden sollen.-
Methods inherited from interface de.bsvrz.sys.funclib.bitctrl.modell.Datensatz
createDatum, getDatum, getSystemObject, getSystemObjekt, konvertiere, konvertiere
-
Methods inherited from interface de.bsvrz.sys.funclib.bitctrl.modell.SystemObjekt
getId, getKonfigurationsBereich, getName, getPid, getTyp
-
-
-
-
Method Detail
-
anmeldenSender
void anmeldenSender(Aspekt asp) throws AnmeldeException
Meldet den Datensatz als Sender oder Quelle am Datenverteiler an.- Parameters:
asp
- der betroffene Aspekt.- Throws:
AnmeldeException
- wenn die Anmeldung nicht erfolgreich war.
-
anmeldenQuelle
void anmeldenQuelle(Aspekt asp, T datum) throws AnmeldeException
Meldet den Datensatz als Quelle am Datenverteiler an und versendet den übergebenen Datensatz.- Parameters:
asp
- der betroffene Aspekt.datum
- der initiale Datensatz- Throws:
AnmeldeException
- wenn die Anmeldung nicht erfolgreich war.
-
abmeldenSender
void abmeldenSender(Aspekt asp)
Meldet eine eventuell vorhandene Anmeldung als Sender oder Quelle wieder ab.- Parameters:
asp
- der betroffene Aspekt.
-
addUpdateListener
void addUpdateListener(Aspekt asp, DatensatzUpdateListener l)
Registriert einen Listener.- Parameters:
asp
- der betroffene Aspekt.l
- ein interessierte Listener.
-
addUpdateListener
void addUpdateListener(Aspekt asp, short simulationsVariante, DatensatzUpdateListener listener)
Registriert einen Listener für eine bestimmte Simulationsvariante.- Parameters:
asp
- der betroffene Aspekt.simulationsVariante
- die Simulationsvariante.listener
- ein interessierte Listener.
-
removeUpdateListener
void removeUpdateListener(Aspekt asp, DatensatzUpdateListener l)
Deregistriert einen Listener.- Parameters:
asp
- der betroffene Aspekt.l
- ein nicht mehr interessierten Listener.
-
removeUpdateListener
void removeUpdateListener(Aspekt asp, short simulationsVariante, DatensatzUpdateListener listener)
Deregistriert einen Listener.- Parameters:
asp
- der betroffene Aspekt.simulationsVariante
- die betroffene Simulationsvariante.listener
- ein nicht mehr interessierten Listener.
-
addSendeSteuerungListener
void addSendeSteuerungListener(Aspekt asp, SendeSteuerungListener listener)
Registriert einen Listener ür die Sendesteuerung.- Parameters:
asp
- der betroffene Aspekt.listener
- ein interessierte Listener.
-
addSendeSteuerungListener
void addSendeSteuerungListener(Aspekt asp, short simulationsVariante, SendeSteuerungListener listener)
Registriert einen Listener für eine bestimmte Simulationsvariante.- Parameters:
asp
- der betroffene Aspekt.simulationsVariante
- die Simulationsvariante.listener
- ein interessierte Listener.
-
removeSendeSteuerungListener
void removeSendeSteuerungListener(Aspekt asp, SendeSteuerungListener listener)
Deregistriert einen Listener. Beim Versuch einen nicht registrierten Listener zu entfernen, wird keine Aktion ausgeführt.- Parameters:
asp
- der betroffene Aspekt.listener
- ein nicht mehr interessierten Listener.
-
removeSendeSteuerungListener
void removeSendeSteuerungListener(Aspekt asp, short simulationsVariante, SendeSteuerungListener listener)
Deregistriert einen Listener. Beim Versuch einen nicht registrierten Listener zu entfernen, wird keine Aktion ausgeführt.- Parameters:
asp
- der betroffene Aspekt.simulationsVariante
- die betroffene Simulationsvariante.listener
- ein nicht mehr interessierten Listener.
-
getAspekte
java.util.Collection<? extends Aspekt> getAspekte()
Gibt die verfügbaren Aspekte zurück.- Specified by:
getAspekte
in interfaceDatensatz<T extends OnlineDatum>
- Returns:
- die Menge der verfügbaren Aspekte.
-
getStatusSendesteuerung
OnlineDatensatz.Status getStatusSendesteuerung(Aspekt asp)
Fragt, ob der Datensatz als Sender oder Quelle Daten senden darf.- Parameters:
asp
- der betroffene Aspekt.- Returns:
true
, wenn der Datensatz als Sender oder Quelle Daten senden darf.
-
isAngemeldetSender
boolean isAngemeldetSender(Aspekt asp)
Fragt, ob der Datensatz als Sender oder Quelle angemeldet ist.- Parameters:
asp
- der betroffene Aspekt.- Returns:
true
, wenn der Datensatz als Sender oder Quelle angemeldet ist.
-
isAutoUpdate
boolean isAutoUpdate(Aspekt asp)
Liest das FlagautoUpdate
.- Parameters:
asp
- der betroffene Aspekt.- Returns:
true
, wenn der Datensatz neue Daten automatisch vom Datenverteiler empfängt.
-
isQuelle
boolean isQuelle(Aspekt asp)
Gibt das Flagquelle
zurück.- Parameters:
asp
- der betroffene Aspekt.- Returns:
true
, wenn der Datensatz als Quelle undfalse
, wenn er als Sender angemeldet werden soll.
-
setQuelle
void setQuelle(Aspekt asp, boolean quelle)
Legt fest, ob Anmeldungen als Quelle durchgeführt werden sollen. Eine bereits bestehende Anmeldung wird dadurch nicht beeinflusst.- Parameters:
asp
- der betroffene Aspekt.quelle
-true
, wenn die Anmeldung als Quelle erfolgen soll, ansonsten erfolgt sie als Sender.
-
isSenke
boolean isSenke(Aspekt asp)
Gibt das Flagsenke
zurück.- Parameters:
asp
- der betroffene Aspekt.- Returns:
true
, wenn der Datensatz als Senke undfalse
, wenn er als Empfänger angemeldet werden soll.
-
setSenke
void setSenke(Aspekt asp, boolean senke)
Legt fest, ob Anmeldungen als Senke durchgeführt werden sollen. Eine bereits bestehende Anmeldung wird dadurch nicht beeinflusst.- Parameters:
asp
- der betroffene Aspekt.senke
-true
, wenn die Anmeldung als Senke erfolgen soll, ansonsten erfolgt sie als Empfänger.
-
sendeDatum
void sendeDatum(Aspekt asp, T datum) throws DatensendeException
Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden. Ist der Zeitstempel des Datums nicht gesetzt oder gleich 0, wird automatisch der aktuelle Zeitstempel beim Versand verwendet.- Parameters:
asp
- der betroffene Aspekt.datum
- das zu sendende Datum.- Throws:
DatensendeException
- wenn die Daten nicht gesendet werden konnten. Der Sendecache wird in dem Fall nicht geleert.- See Also:
Datensatz.createDatum()
-
sendeDatum
void sendeDatum(Aspekt asp, T datum, long timeout) throws DatensendeException
Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden. Ist der Zeitstempel des Datums nicht gesetzt oder gleich 0, wird automatisch der aktuelle Zeitstempel beim Versand verwendet.- Parameters:
asp
- der betroffene Aspekt.datum
- das zu sendende Datum.timeout
- die Zeit in der der Datensatz gesendet werden muss.- Throws:
DatensendeException
- wenn die Daten nicht gesendet werden konnten. Der Sendecache wird in dem Fall nicht geleert.- See Also:
Datensatz.createDatum()
-
getArchivdatenIterator
java.util.Iterator<T> getArchivdatenIterator(Aspekt asp, com.bitctrl.util.Interval intervall, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Erzeugt aus den Parametern eine äquivalente Archivanfrage für einen Zeitraum.- Parameters:
asp
- der Aspekt für den Daten gesucht werden.intervall
- das Zeitintervall der Archivanfrage.nurAenderungen
-true
, wenn nur geänderten Datensätze zurückgeben werden sollen. Aufeinanderfolgende identische Datensätze werden hierbei zu einem Datensatz zusammengefasst.dataKinds
- die gewünschten Datensatzarten. Wenn nicht angegeben, werden nur Onlinedaten abgefragt.- Returns:
- die Liste der Archivanfragen.
-
getArchivdatenIterator
java.util.Iterator<T> getArchivdatenIterator(Aspekt asp, long zeitstempel, int anzahlDatensaetze, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Erzeugt aus den Parametern eine äquivalente Archivanfrage für eine bestimmte Anzahl Datensätze vor einem Endzeitpunkt.- Parameters:
asp
- der Aspekt für den Daten gesucht werden.zeitstempel
- der Zeitpunkt vor dem die Datensätze liegen sollen.anzahlDatensaetze
- die Anzahl der gewünschten Datensätze.nurAenderungen
-true
, wenn nur geänderten Datensätze zurückgeben werden sollen. Aufeinanderfolgende identische Datensätze werden hierbei zu einem Datensatz zusammengefasst.dataKinds
- die gewünschten Datensatzarten. Wenn nicht angegeben, werden nur Onlinedaten abgefragt.- Returns:
- die Liste der Archivanfragen.
-
getArchivdaten
java.util.List<T> getArchivdaten(Aspekt asp, com.bitctrl.util.Interval intervall, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Ruft Archivdaten in einen Rutsch ab. Diese Methode sollte nur verwendet werden, wenn die zu erwartenden Liste der Archivdaten nicht zu groß ist.Hinweis: Diese Methode sollte nur für Anfragen benutzt werden, die relativ kleine Datenmengen abfragen, da die Abfrage sonst sehr lange dauern oder gar fehlschlagen kann. Besser ist es die Methode
getArchivdatenIterator(Aspekt, Interval, boolean, ArchiveDataKind...)
zu verwenden.- Parameters:
asp
- der Aspekt für den Daten gesucht werden.intervall
- das Zeitintervall der Archivanfrage.nurAenderungen
-true
, wenn nur geänderten Datensätze zurückgeben werden sollen. Aufeinanderfolgende identische Datensätze werden hierbei zu einem Datensatz zusammengefasst.dataKinds
- die gewünschten Datensatzarten. Wenn nicht angegeben, werden nur Onlinedaten abgefragt.- Returns:
- die Liste der Archivdaten.
- See Also:
getArchivdatenIterator(Aspekt, Interval, boolean, ArchiveDataKind...)
-
getArchivdaten
java.util.List<T> getArchivdaten(Aspekt asp, long zeitstempel, int anzahlDatensaetze, boolean nurAenderungen, de.bsvrz.dav.daf.main.archive.ArchiveDataKind... dataKinds)
Liefert eine beliebige Anzahl an Archivdatensätzen vor einem definierten Zeitpunkt.Hinweis: Diese Methode sollte nur für Anfragen benutzt werden, die relativ kleine Datenmengen abfragen, da die Abfrage sonst sehr lange dauern oder gar fehlschlagen kann. Besser ist es die Methode
getArchivdatenIterator(Aspekt, long, int, boolean, ArchiveDataKind...)
zu verwenden.- Parameters:
asp
- der Aspekt für den Daten gesucht werden.zeitstempel
- der Zeitpunkt vor dem die Datensätze liegen sollen.anzahlDatensaetze
- die Anzahl der gewünschten Datensätze.nurAenderungen
-true
, wenn nur geänderten Datensätze zurückgeben werden sollen. Aufeinanderfolgende identische Datensätze werden hierbei zu einem Datensatz zusammengefasst.dataKinds
- die gewünschten Datensatzarten. Wenn nicht angegeben, werden nur Onlinedaten abgefragt.- Returns:
- die Liste der Archivdaten.
- See Also:
ArchivIterator
,getArchivdatenIterator(Aspekt, long, int, boolean, ArchiveDataKind...)
-
getSingleDatum
T getSingleDatum(Aspekt asp)
Gibt die aktuellen Daten des Datensatzes zurück. Die implizite Empfängeranmeldung wird sofort abgemeldet.- Parameters:
asp
- der betroffene Aspekt.- Returns:
- ein Datum, welches die Daten des Datensatzes kapselt.
-
getDatum
T getDatum(Aspekt asp, long unsubscriptionIntervall)
Gibt die aktuellen Daten des Datensatzes zurück. Es erfolgt eine implizite Empfängeranmeldung für das angegebene Intervall in Millisekunden.- Parameters:
asp
- der betroffene Aspekt.unsubscriptionIntervall
- das Intervall für die eine implizite Empfängeranmeldung gültig sein soll.- Returns:
- ein Datum, welches die Daten des Datensatzes kapselt.
-
-