Package de.bsvrz.pua.prot.sender
Class PuaSender
- java.lang.Object
-
- de.bsvrz.pua.prot.sender.PuaSender
-
public class PuaSender extends java.lang.ObjectKlasse, 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 byteNO_SEND_CONTROL_YETstatic byteTIMEOUT
-
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 booleanflush()Wartet, bis alle verbleibenden Datensätze gesendet wurdende.bsvrz.dav.daf.main.DataDescriptiongetDataDescription()de.bsvrz.dav.daf.main.ClientDavInterfacegetDav()de.bsvrz.dav.daf.main.config.SystemObjectgetObject()booleanisAlive()voidsend(de.bsvrz.dav.daf.main.Data data)java.lang.StringtoString()
-
-
-
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:
toStringin 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.
-
-