private final class DavRequester.Sender extends java.lang.Object implements ClientSenderInterface
Modifier and Type | Class and Description |
---|---|
private class |
DavRequester.Sender.QueueHandler |
Modifier and Type | Field and Description |
---|---|
private DataDescription |
_dataDescription |
private SystemObject |
_object |
private java.util.Queue<Data> |
_queue |
private boolean |
_running |
private byte |
_state |
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
Constructor and Description |
---|
Sender(long object) |
Modifier and Type | Method and Description |
---|---|
void |
dataRequest(SystemObject object,
DataDescription dataDescription,
byte state)
Sendesteuerung des Datenverteilers an die Applikation.
|
boolean |
hasSentData() |
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. |
boolean |
isRunning() |
void |
send(Data data) |
void |
stop() |
java.lang.String |
toString() |
private final java.util.Queue<Data> _queue
private volatile byte _state
private final SystemObject _object
private final DataDescription _dataDescription
private boolean _running
public Sender(long object) throws OneSubscriptionPerSendData
OneSubscriptionPerSendData
public void dataRequest(SystemObject object, DataDescription dataDescription, byte state)
Sendesteuerung des Datenverteilers an die Applikation. Diese Methode muss von der Applikation implementiert werden, um den Versand von Daten zu starten bzw. anzuhalten. Der Datenverteiler signalisiert damit einer Quelle oder einem Sender dass mindestens ein Abnehmer bzw. kein Abnehmer mehr für die zuvor angemeldeten Daten vorhanden ist. Die Quelle wird damit aufgefordert den Versand von Daten zu starten bzw. zu stoppen.
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)
Diese Methode muss von der Applikation implementiert werden, um zu signalisieren, ob Sendesteuerungen erwünscht sind und mit der Methode 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
.dataRequest(de.bsvrz.dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, byte)
public void send(Data data)
public void stop()
public boolean hasSentData()
public boolean isRunning()
public java.lang.String toString()
toString
in class java.lang.Object