Class BestaetigterDavSender

  • All Implemented Interfaces:
    de.bsvrz.dav.daf.main.ClientSenderInterface, de.bsvrz.dav.daf.main.DavConnectionListener

    public final class BestaetigterDavSender
    extends java.lang.Object
    implements de.bsvrz.dav.daf.main.ClientSenderInterface, de.bsvrz.dav.daf.main.DavConnectionListener
    Allgemeine Klasse zur Realisierung eines Datenverteiler-Senders mit Sendesteuerung.
    • Field Summary

      • Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface

        START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
    • Method Summary

      Modifier and Type Method Description
      void abmelden​(de.bsvrz.dav.daf.main.config.SystemObject objekt, de.bsvrz.dav.daf.main.DataDescription desc)
      führt eine Abmeldung für die übergebene Kombination aus Systemobjekt und Datenbschreibung aus.
      Für die entsprechende Anmeldung wird der Anmeldungszähler inkrementiert.
      void anmelden​(de.bsvrz.dav.daf.main.config.SystemObject objekt, de.bsvrz.dav.daf.main.DataDescription desc, boolean quelle)
      führt eine Anmeldung für die übergebene Kombination aus Systemobjekt und Datenbschreibung aus.
      Wenn für die Kombination noch keine Anmeldung erfolgte, wird eine neue Anmeldung ausgeführt, ansonsten wird der Zähler für dies Anmeldung erhöht.
      void connectionClosed​(de.bsvrz.dav.daf.main.ClientDavInterface connection)
      void dataRequest​(de.bsvrz.dav.daf.main.config.SystemObject objekt, de.bsvrz.dav.daf.main.DataDescription desc, byte status)
      static BestaetigterDavSender getSender​(de.bsvrz.dav.daf.main.ClientDavInterface connection)
      erzeugt und liefert eine Instanz eines Senderobjekts für die übergebene Datenverteilerverbindung.
      boolean isQuelle​(de.bsvrz.dav.daf.main.config.SystemObject objekt, de.bsvrz.dav.daf.main.DataDescription dataDesc)
      ermittelt, ob für das übergebene Objekt und die Datenbeschreibung eine Anmeldung als Quelle erfolgt ist.
      boolean isRequestSupported​(de.bsvrz.dav.daf.main.config.SystemObject objekt, de.bsvrz.dav.daf.main.DataDescription dataDescription)
      .
      Die Sendesteuerung wird für alle Anmeldungen unterstützt.
      void warteAufBestaetigung​(de.bsvrz.dav.daf.main.config.SystemObject objekt, de.bsvrz.dav.daf.main.DataDescription desc, long timeout)
      blockiert einen Thread, bis die beschriebene Anmeldung bestätigt wurde.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getSender

        public static BestaetigterDavSender getSender​(de.bsvrz.dav.daf.main.ClientDavInterface connection)
        erzeugt und liefert eine Instanz eines Senderobjekts für die übergebene Datenverteilerverbindung.
        Parameters:
        connection - die verwendete Datenverteilerverbindung
        Returns:
        die Instanz des Senders
      • abmelden

        public void abmelden​(de.bsvrz.dav.daf.main.config.SystemObject objekt,
                             de.bsvrz.dav.daf.main.DataDescription desc)
        führt eine Abmeldung für die übergebene Kombination aus Systemobjekt und Datenbschreibung aus.
        Für die entsprechende Anmeldung wird der Anmeldungszähler inkrementiert. Wenn keine Anmeldung mehr vorhanden ist, erfolgt die Abmeldung vom Datenverteiler und die Anmeldung wird aus der Liste der verwalteten Anmeldungen entfernt.
        Parameters:
        objekt - das Systemobjekt
        desc - die Datenbschreibung
      • anmelden

        public void anmelden​(de.bsvrz.dav.daf.main.config.SystemObject objekt,
                             de.bsvrz.dav.daf.main.DataDescription desc,
                             boolean quelle)
        führt eine Anmeldung für die übergebene Kombination aus Systemobjekt und Datenbschreibung aus.
        Wenn für die Kombination noch keine Anmeldung erfolgte, wird eine neue Anmeldung ausgeführt, ansonsten wird der Zähler für dies Anmeldung erhöht.
        Parameters:
        objekt - das Systemobjekt
        desc - die Datenbschreibung
        quelle - die Anmeldung soll als Quelle erfolgen
      • connectionClosed

        public void connectionClosed​(de.bsvrz.dav.daf.main.ClientDavInterface connection)
        Specified by:
        connectionClosed in interface de.bsvrz.dav.daf.main.DavConnectionListener
      • dataRequest

        public void dataRequest​(de.bsvrz.dav.daf.main.config.SystemObject objekt,
                                de.bsvrz.dav.daf.main.DataDescription desc,
                                byte status)
        Specified by:
        dataRequest in interface de.bsvrz.dav.daf.main.ClientSenderInterface
      • isQuelle

        public boolean isQuelle​(de.bsvrz.dav.daf.main.config.SystemObject objekt,
                                de.bsvrz.dav.daf.main.DataDescription dataDesc)
        ermittelt, ob für das übergebene Objekt und die Datenbeschreibung eine Anmeldung als Quelle erfolgt ist.
        Parameters:
        objekt - das Objekt
        dataDesc - die Datenbeschreibung
        Returns:
        true, wenn eine Quellenanmeldung vorliegt
      • isRequestSupported

        public boolean isRequestSupported​(de.bsvrz.dav.daf.main.config.SystemObject objekt,
                                          de.bsvrz.dav.daf.main.DataDescription dataDescription)
        .
        Die Sendesteuerung wird für alle Anmeldungen unterstützt.
        Specified by:
        isRequestSupported in interface de.bsvrz.dav.daf.main.ClientSenderInterface
        See Also:
        ClientSenderInterface.isRequestSupported(SystemObject, DataDescription)
      • warteAufBestaetigung

        public void warteAufBestaetigung​(de.bsvrz.dav.daf.main.config.SystemObject objekt,
                                         de.bsvrz.dav.daf.main.DataDescription desc,
                                         long timeout)
                                  throws de.bsvrz.dav.daf.main.SendSubscriptionNotConfirmed
        blockiert einen Thread, bis die beschriebene Anmeldung bestätigt wurde.
        Die einfache Implementierung pollt zyklisch den Status der Anmeldung entweer bis dieser als bestätigt gilt oder der übergebene Timeoutwert erreicht wurde.
        Wird für den Timeoutwert ein Wert kleiner oder gleich 0 angegeben, wird unendlich lange gewartet.
        Parameters:
        objekt - das Systemobjekt
        desc - die Datenbeschreibung
        timeout - die maximale Wartezeit in Sekunden
        Throws:
        de.bsvrz.dav.daf.main.SendSubscriptionNotConfirmed - die Sendeanmeldung konnte innerhalb der geforderten Zeit nicht bestätigt werden