Class 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:
    1. Eine Instanz der Klasse wird erzeugt, dadurch wird die Datenidentifikation zum Senden mit Sendesteuerugn angemeldet
    2. Bevor eine positive Sendesteuerugn eintritt werden mit send() übergebene Telegramme zwischengespeichert
    3. Sobald es eine positive Sendesteuerung gibt, werden zwischengespeicherte Telegramme gesendet
    4. Weitere über send() übergebene Telegramme werden direkt gesendet
    5. 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
    Sämtliche send()-Aufrufe sind nicht blockierend, es wird also nicht gewartet, bis die Daten wirklich versand werden konnten. Die Sendeanmeldung wird erst entfernt, wenn sich der Client als Empfänger abgemeldet oder aus anderen Gründen beendet hat.
    • 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 wurden
      de.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()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 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 class java.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.