private final class MessageSender.OperatingMessageSender extends java.lang.Object implements ClientSenderInterface
Diese Klasse fragt den aktuellen Zustand der Sendesteuerung ab. Durch Abfrage der Methode getState()
kann ermittelt werden, ob aktuell eine Betriebsmeldung an die Betriebsmeldungsverwaltung geschickt werden kann, oder nicht.
Modifier and Type | Field and Description |
---|---|
private byte |
_state |
private java.util.Deque<ResultData> |
_waitQueue
In dieser Queue warten Datensätze wenn aktuell die Betriebsmeldungsverwaltung nicht erreichbar ist (bzw. keine positive Sendesteuerung vorliegt)
|
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
Modifier | Constructor and Description |
---|---|
private |
OperatingMessageSender() |
Modifier and Type | Method and Description |
---|---|
void |
dataRequest(SystemObject object,
DataDescription dataDescription,
byte state)
Sendesteuerung des Datenverteilers an die Applikation.
|
private void |
enqueue(ResultData data) |
byte |
getState() |
boolean |
isRequestSupported(SystemObject object,
DataDescription dataDescription)
Diese Methode muss von der Applikation implementiert werden, um zu signalisieren, ob Sendesteuerungen erwünscht sind und mit der Methode
dataRequest verarbeitet werden. |
private void |
sendData(Data data) |
private void |
sendDataDirect(ResultData resultData) |
private byte _state
private final java.util.Deque<ResultData> _waitQueue
In dieser Queue warten Datensätze wenn aktuell die Betriebsmeldungsverwaltung nicht erreichbar ist (bzw. keine positive Sendesteuerung vorliegt)
public void dataRequest(SystemObject object, DataDescription dataDescription, byte state)
de.bsvrz.dav.daf.main.ClientSenderInterface
dataRequest
in interface ClientSenderInterface
object
- Das in der zugehörigen Sendeanmeldung angegebene Objekt, auf das sich die Sendesteuerung bezieht.dataDescription
- Beschreibende Informationen zu den angemeldeten Daten auf die sich die Sendesteuerung bezieht.state
- Status der Sendesteuerung. Kann einen der Werte START_SENDING
, STOP_SENDING
,
STOP_SENDING_NO_RIGHTS
, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
enthalten.ClientSenderInterface.START_SENDING
,
ClientSenderInterface.STOP_SENDING
,
ClientSenderInterface.STOP_SENDING_NO_RIGHTS
,
ClientSenderInterface.STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
public boolean isRequestSupported(SystemObject object, DataDescription dataDescription)
de.bsvrz.dav.daf.main.ClientSenderInterface
dataRequest
verarbeitet werden. In der Implementierung dieser Methode dürfen keine synchronen Aufrufe, die auf Telegramme vom Datenverteiler
warten (wie z.B. Konfigurationsanfragen) durchgeführt werden, da ansonsten ein Deadlock entsteht.isRequestSupported
in interface ClientSenderInterface
object
- Das in der zugehörigen Sendeanmeldung angegebene System-Objekt.dataDescription
- Die in der zugehörigen Sendeanmeldung angegebenen beschreibenden Informationen der angemeldeten Daten.true
, falls Sendesteuerungen gewünscht sind, sonst false
.ClientSenderInterface.dataRequest(de.bsvrz.dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, byte)
public byte getState()
private void sendData(Data data)
private void sendDataDirect(ResultData resultData)
private void enqueue(ResultData data)