Class ConnectionManager


  • public class ConnectionManager
    extends java.lang.Object
    Verwaltet die An- und Abmeldungen als Sender / Empfänger beim Dav. Verhindert, dass die gleichen Datenidentifikationen mehrfach zum Senden / Empfangen angemeldet werden. Außerdem werden Abmeldungen erst dann durchgeführt, wenn es keinen Sender / Empfänger mehr gibt. Mehrfachanmeldungen eines Senders / Empfängers für die gleiche Datenidentifikation sind nicht möglich, auch wenn er sich mit unterschiedlichen Rollen anmeldet.
    Die Anmeldungen werden nach Datenverteilerverbindung getrennt verwaltet.
    Mittels noSubscriptions(ClientDavInterface) kann geprüft werden, ob es noch offene Anmeldungen gibt.
    Alle Methoden sind Threadsafe.
    • Method Summary

      Modifier and Type Method Description
      static java.util.List<java.lang.String> getReceiverInformation​(de.bsvrz.dav.daf.main.ClientDavInterface dav)  
      static java.util.List<java.lang.String> getSenderInformation​(de.bsvrz.dav.daf.main.ClientDavInterface dav)  
      static boolean noSubscriptions​(de.bsvrz.dav.daf.main.ClientDavInterface dav)  
      static int numberReceivers​(de.bsvrz.dav.daf.main.ClientDavInterface dav)  
      static int numberSenders​(de.bsvrz.dav.daf.main.ClientDavInterface dav)  
      static void printStatus()
      Gibt den Status aus.
      static void resetSubscriptionMarkers​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
      Loescht die Tabelle, in der alle Anmeldungen vermerkt sind.
      static void subscrDrainNormal​(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.ClientReceiverInterface receiver, de.bsvrz.dav.daf.main.config.SystemObject so, java.lang.String atgPid, java.lang.String aspPid)
      Anmeldung zum Empfangen von Daten.
      static void subscribeReceiver​(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.ClientReceiverInterface receiver, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, de.bsvrz.dav.daf.main.ReceiveOptions options, de.bsvrz.dav.daf.main.ReceiverRole role)
      Anmeldung zum Empfangen von Daten.
      static void subscribeSender​(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.ClientSenderInterface sender, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, de.bsvrz.dav.daf.main.SenderRole role)
      Anmeldung zum Senden von Daten.
      static void subscrRecNormal​(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.ClientReceiverInterface receiver, de.bsvrz.dav.daf.main.config.SystemObject so, java.lang.String atgPid, java.lang.String aspPid)
      Anmeldung zum Empfangen von Daten.
      static void unsubscribeAll​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
      Meldet alle Sender und Empfänger ab.
      static void unsubscribeReceiver​(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.ClientReceiverInterface receiver, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)
      Meldet den Empfang von Daten ab.
      static void unsubscribeReceiver​(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.ClientReceiverInterface receiver, de.bsvrz.dav.daf.main.config.SystemObject so, java.lang.String atgPid, java.lang.String aspPid)
      Meldet den Empfang von Daten ab, die aud dem Konfigurationsverantwortlichen angemeldet waren.
      static void unsubscribeSender​(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.ClientSenderInterface sender, de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)
      Meldet das Senden von Daten ab.
      • Methods inherited from class java.lang.Object

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

      • ConnectionManager

        public ConnectionManager()
    • Method Detail

      • printStatus

        public static void printStatus()
        Gibt den Status aus. Loglevel ist info
      • subscribeReceiver

        public static void subscribeReceiver​(de.bsvrz.dav.daf.main.ClientDavInterface dav,
                                             de.bsvrz.dav.daf.main.ClientReceiverInterface receiver,
                                             de.bsvrz.dav.daf.main.config.SystemObject object,
                                             de.bsvrz.dav.daf.main.DataDescription dataDescription,
                                             de.bsvrz.dav.daf.main.ReceiveOptions options,
                                             de.bsvrz.dav.daf.main.ReceiverRole role)
                                      throws de.bsvrz.dav.daf.main.config.ConfigurationException,
                                             FailureException
        Anmeldung zum Empfangen von Daten. Die Anmeldung wird nur durchgeführt, falls die übergebene Datenidentifikation noch nicht angemeldet wurde.
        Parameters:
        dav - Verbindung zum Datenverteiler
        receiver - Empfänger
        object - Objekt. Objekt-Teil der Datenidentifikation.
        dataDescription - Datenbeschreibung. Attributgruppe und Aspekt der Datenidentifikation.
        options - Empfangsoptionen. Delta oder Normaldaten.
        role - Anmeldung als Empfänger oder Senke.
        Throws:
        de.bsvrz.dav.daf.main.config.ConfigurationException - Fehler bei der Kommunikation mit der Konfiguration.
        FailureException - Mehrfach-Anmeldung des gleichen Receivers
        See Also:
        ClientDavInterface.subscribeReceiver(ClientReceiverInterface,SystemObject,DataDescription,ReceiveOptions,ReceiverRole)
      • subscrDrainNormal

        public static void subscrDrainNormal​(de.bsvrz.dav.daf.main.ClientDavInterface dav,
                                             de.bsvrz.dav.daf.main.ClientReceiverInterface receiver,
                                             de.bsvrz.dav.daf.main.config.SystemObject so,
                                             java.lang.String atgPid,
                                             java.lang.String aspPid)
                                      throws de.bsvrz.dav.daf.main.config.ConfigurationException,
                                             FailureException
        Anmeldung zum Empfangen von Daten. Angemeldet wird auf den Konfigurationsverantwortlichen unter ReceiveOptions.normal() und ReceiverRole.drain().
        Parameters:
        dav - Verbindung zum Datenverteiler
        receiver - Empfänger
        atgPid - Pid der Attributgruppe
        aspPid - Pis des Aspektes
        Throws:
        de.bsvrz.dav.daf.main.config.ConfigurationException
        FailureException
      • subscrRecNormal

        public static void subscrRecNormal​(de.bsvrz.dav.daf.main.ClientDavInterface dav,
                                           de.bsvrz.dav.daf.main.ClientReceiverInterface receiver,
                                           de.bsvrz.dav.daf.main.config.SystemObject so,
                                           java.lang.String atgPid,
                                           java.lang.String aspPid)
                                    throws de.bsvrz.dav.daf.main.config.ConfigurationException,
                                           FailureException
        Anmeldung zum Empfangen von Daten. Angemeldet wird auf den Konfigurationsverantwortlichen unter ReceiveOptions.normal() und ReceiverRole.receiver().
        Parameters:
        dav - Verbindung zum Datenverteiler
        receiver - Empfänger
        atgPid - Pid der Attributgruppe
        aspPid - Pis des Aspektes
        Throws:
        de.bsvrz.dav.daf.main.config.ConfigurationException
        FailureException
      • unsubscribeReceiver

        public static void unsubscribeReceiver​(de.bsvrz.dav.daf.main.ClientDavInterface dav,
                                               de.bsvrz.dav.daf.main.ClientReceiverInterface receiver,
                                               de.bsvrz.dav.daf.main.config.SystemObject so,
                                               java.lang.String atgPid,
                                               java.lang.String aspPid)
                                        throws de.bsvrz.dav.daf.main.config.ConfigurationException
        Meldet den Empfang von Daten ab, die aud dem Konfigurationsverantwortlichen angemeldet waren.
        Parameters:
        dav -
        receiver -
        atgPid -
        aspPid -
        Throws:
        de.bsvrz.dav.daf.main.config.ConfigurationException
      • unsubscribeReceiver

        public static void unsubscribeReceiver​(de.bsvrz.dav.daf.main.ClientDavInterface dav,
                                               de.bsvrz.dav.daf.main.ClientReceiverInterface receiver,
                                               de.bsvrz.dav.daf.main.config.SystemObject object,
                                               de.bsvrz.dav.daf.main.DataDescription dataDescription)
                                        throws de.bsvrz.dav.daf.main.config.ConfigurationException
        Meldet den Empfang von Daten ab. Die Abmeldung wird nur durchgeführt, wenn es keine weiteren Abnehmer für die Daten gibt.
        Parameters:
        dav - Verbindung zum Datenverteiler.
        receiver - Empfänger
        object - Objekt. Objekt-Teil der Datenidentifikation.
        dataDescription - Datenbeschreibung. Attributgruppe und Aspekt der Datenidentifikation.
        Throws:
        de.bsvrz.dav.daf.main.config.ConfigurationException - Fehler bei der Kommunikation mit der Konfiguration.
        See Also:
        ClientDavInterface.unsubscribeReceiver(ClientReceiverInterface,SystemObject,DataDescription)
      • subscribeSender

        public static void subscribeSender​(de.bsvrz.dav.daf.main.ClientDavInterface dav,
                                           de.bsvrz.dav.daf.main.ClientSenderInterface sender,
                                           de.bsvrz.dav.daf.main.config.SystemObject object,
                                           de.bsvrz.dav.daf.main.DataDescription dataDescription,
                                           de.bsvrz.dav.daf.main.SenderRole role)
                                    throws de.bsvrz.dav.daf.main.config.ConfigurationException,
                                           de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
        Anmeldung zum Senden von Daten. Die Anmeldung wird nur durchgeführt, falls die übergebene Datenidentifikation noch nicht angemeldet wurde. Wenn sich ein Sender für die gleiche Datenidentifikation anmeldet, so wird nur die erste Anmeldung durchgeführt. Die weiteren Anmeldungen werden NICHT durchgeführt. ConnectionManager ruft die ClientSenderInterface.dataRequest(SystemObject,DataDescription,byte) Methode mit dem zuletzt gültigen Wert der Sendesteuerung auf. Dies ist nötig, falls der Sender, der sich anmelden will, vor dem Senden auf eine positive Sendesteuereung wartet. (Falls der Sender die Sendesteuerung nicht benutzt, wird diese auch nicht aufgerufen.
        Parameters:
        dav - Verbindung zum Datenverteiler
        sender - Sender.
        object - Objekt. Objekt-Teil der Datenidentifikation.
        dataDescription - Datenbeschreibung. Attributgruppe und Aspekt der Datenidentifikation.
        role - Anmeldung als Sender oder Quelle.
        Throws:
        de.bsvrz.dav.daf.main.config.ConfigurationException - Fehler bei der Kommunikation mit der Konfiguration.
        de.bsvrz.dav.daf.main.OneSubscriptionPerSendData - Falls bereits eine Anmeldung für diese Datenidentifikation existiert. Kann auftreten, wenn Anmeldungen zum Senden nicht nur durch ConnectionManager durchgeführt werden.
        See Also:
        ClientDavInterface.subscribeSender(ClientSenderInterface,SystemObject,DataDescription,SenderRole)
      • unsubscribeSender

        public static void unsubscribeSender​(de.bsvrz.dav.daf.main.ClientDavInterface dav,
                                             de.bsvrz.dav.daf.main.ClientSenderInterface sender,
                                             de.bsvrz.dav.daf.main.config.SystemObject object,
                                             de.bsvrz.dav.daf.main.DataDescription dataDescription)
                                      throws de.bsvrz.dav.daf.main.config.ConfigurationException
        Meldet das Senden von Daten ab. Die Abmeldung wird nur durchgeführt, wenn es keine weiteren Sender für die Daten gibt.
        Parameters:
        dav - Verbindung zum Datenverteiler.
        sender - Sender.
        object - Objekt. Objekt-Teil der Datenidentifikation.
        dataDescription - Datenbeschreibung. Attributgruppe und Aspekt der Datenidentifikation.
        Throws:
        de.bsvrz.dav.daf.main.config.ConfigurationException - Fehler bei der Kommunikation mit der Konfiguration.
        See Also:
        ClientDavInterface.unsubscribeSender(ClientSenderInterface,SystemObject,DataDescription)
      • resetSubscriptionMarkers

        public static void resetSubscriptionMarkers​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Loescht die Tabelle, in der alle Anmeldungen vermerkt sind. Dies ist bei einem DAV-Absturz Anotwendig, wenn keine Zeit zum Abmelden mehr war.
        Parameters:
        dav - Verbindung zum Datenverteiler.
      • numberSenders

        public static int numberSenders​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Parameters:
        dav - Verbindung zum Datenverteiler.
        Returns:
        Anzahl der registrierten Sender / Quellen.
      • numberReceivers

        public static int numberReceivers​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Parameters:
        dav - Verbindung zum Datenverteiler.
        Returns:
        Anzahl der registrierten Empfänger / Senken.
      • noSubscriptions

        public static boolean noSubscriptions​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Parameters:
        dav - Verbindung zum Datenverteiler.
        Returns:
        true falls es keine Anmeldungen mehr gibt. false sonst.
      • unsubscribeAll

        public static void unsubscribeAll​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Meldet alle Sender und Empfänger ab.
        Parameters:
        dav - Verbindung zum Datenverteiler
      • getReceiverInformation

        public static java.util.List<java.lang.String> getReceiverInformation​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Parameters:
        dav - Verbindung zum Datenverteiler.
        Returns:
        Liefert Informationen über alle Empfänger.
      • getSenderInformation

        public static java.util.List<java.lang.String> getSenderInformation​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Parameters:
        dav - Verbindung zum Datenverteiler.
        Returns:
        Liefert Informationen über alle Sender.