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 classOnlineDatensatz.StatusDie Statuscodes der Sendesteuerung des Datenverteilers alsEnum.
-
Method Summary
Modifier and Type Method Description voidabmeldenSender(Aspekt asp)Meldet eine eventuell vorhandene Anmeldung als Sender oder Quelle wieder ab.voidaddSendeSteuerungListener(Aspekt asp, short simulationsVariante, SendeSteuerungListener listener)Registriert einen Listener für eine bestimmte Simulationsvariante.voidaddSendeSteuerungListener(Aspekt asp, SendeSteuerungListener listener)Registriert einen Listener ür die Sendesteuerung.voidaddUpdateListener(Aspekt asp, short simulationsVariante, DatensatzUpdateListener listener)Registriert einen Listener für eine bestimmte Simulationsvariante.voidaddUpdateListener(Aspekt asp, DatensatzUpdateListener l)Registriert einen Listener.voidanmeldenQuelle(Aspekt asp, T datum)Meldet den Datensatz als Quelle am Datenverteiler an und versendet den übergebenen Datensatz.voidanmeldenSender(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.TgetDatum(Aspekt asp, long unsubscriptionIntervall)Gibt die aktuellen Daten des Datensatzes zurück.TgetSingleDatum(Aspekt asp)Gibt die aktuellen Daten des Datensatzes zurück.OnlineDatensatz.StatusgetStatusSendesteuerung(Aspekt asp)Fragt, ob der Datensatz als Sender oder Quelle Daten senden darf.booleanisAngemeldetSender(Aspekt asp)Fragt, ob der Datensatz als Sender oder Quelle angemeldet ist.booleanisAutoUpdate(Aspekt asp)Liest das FlagautoUpdate.booleanisQuelle(Aspekt asp)Gibt das Flagquellezurück.booleanisSenke(Aspekt asp)Gibt das Flagsenkezurück.voidremoveSendeSteuerungListener(Aspekt asp, short simulationsVariante, SendeSteuerungListener listener)Deregistriert einen Listener.voidremoveSendeSteuerungListener(Aspekt asp, SendeSteuerungListener listener)Deregistriert einen Listener.voidremoveUpdateListener(Aspekt asp, short simulationsVariante, DatensatzUpdateListener listener)Deregistriert einen Listener.voidremoveUpdateListener(Aspekt asp, DatensatzUpdateListener l)Deregistriert einen Listener.voidsendeDatum(Aspekt asp, T datum)Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden.voidsendeDatum(Aspekt asp, T datum, long timeout)Veranlasst den Datensatz ein Datum an den Datenverteiler zusenden.voidsetQuelle(Aspekt asp, boolean quelle)Legt fest, ob Anmeldungen als Quelle durchgeführt werden sollen.voidsetSenke(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:
getAspektein 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 Flagquellezurü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 Flagsenkezurü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.
-
-