Package de.bsvrz.pua.prot.sender
Class PuaSender
- java.lang.Object
-
- de.bsvrz.pua.prot.sender.PuaSender
-
public class PuaSender extends java.lang.Object
Klasse, die der PuA-Server zur Kommunikation mit den Clients benutzt. Früher wurde der SimpleSender benutzt. Details zur Notwendigkeit siehe Nerz Fehlereintrag Nerz-F-157. Das Verhalten der Klasse ist wie folgt:- Eine Instanz der Klasse wird erzeugt, dadurch wird die Datenidentifikation zum Senden mit Sendesteuerugn angemeldet
- Bevor eine positive Sendesteuerugn eintritt werden mit send() übergebene Telegramme zwischengespeichert
- Sobald es eine positive Sendesteuerung gibt, werden zwischengespeicherte Telegramme gesendet
- Weitere über send() übergebene Telegramme werden direkt gesendet
- Sobald eine negative Sendesteuerung eintrifft oder wenn es nach 1 Minute (oder einem anderen angegebenen Timeout) keine positive Sendesteuerung gab, wird der Sender abgemeldet und die Aufrufende Klasse über einen callback informiert, dass der Client nicht mehr gültig ist. Dadurch kann bspw. der Client aus datenstrukturen entfernt werden oder ein evtl. gerade durchgeführte Protokollerstellung abgebrochen werden
-
-
Field Summary
Fields Modifier and Type Field Description static byte
NO_SEND_CONTROL_YET
static byte
TIMEOUT
-
Constructor Summary
Constructors Constructor Description PuaSender(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, java.lang.Runnable closedCallback)
PuaSender(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, java.lang.Runnable closedCallback, long timeout)
-
Method Summary
Modifier and Type Method Description boolean
flush()
Wartet, bis alle verbleibenden Datensätze gesendet wurdende.bsvrz.dav.daf.main.DataDescription
getDataDescription()
de.bsvrz.dav.daf.main.ClientDavInterface
getDav()
de.bsvrz.dav.daf.main.config.SystemObject
getObject()
boolean
isAlive()
void
send(de.bsvrz.dav.daf.main.Data data)
java.lang.String
toString()
-
-
-
Field Detail
-
NO_SEND_CONTROL_YET
public static final byte NO_SEND_CONTROL_YET
- See Also:
- Constant Field Values
-
TIMEOUT
public static final byte TIMEOUT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PuaSender
public PuaSender(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, java.lang.Runnable closedCallback)
-
PuaSender
public PuaSender(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, java.lang.Runnable closedCallback, long timeout)
-
-
Method Detail
-
send
public void send(de.bsvrz.dav.daf.main.Data data)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getObject
public de.bsvrz.dav.daf.main.config.SystemObject getObject()
-
getDataDescription
public de.bsvrz.dav.daf.main.DataDescription getDataDescription()
-
getDav
public de.bsvrz.dav.daf.main.ClientDavInterface getDav()
-
isAlive
public boolean isAlive()
-
flush
public boolean flush()
Wartet, bis alle verbleibenden Datensätze gesendet wurden- Returns:
- true wenn alle bisher mit send() übergebenen Datensätze erfolgreich gesendet wurden, false wenn es nach dem Timeout keine positive Sendesteuerung gibt oder sich der Empfänger abgemeldet hat bevor alle Daten gesendet werden konnten oder der Thread interrupted wurde.
-
-