Class AbstractSubscriptionsManager

    • Field Detail

      • _subscriptions

        protected final java.util.concurrent.ConcurrentHashMap<de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo,​SubscriptionInfo> _subscriptions
        HashMap mit der Zuordnung einer Anmeldeklasse zu einer BaseSubscriptionInfo.
      • _dataIndexCounter

        protected final DataIndexCounter<de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo> _dataIndexCounter
    • Constructor Detail

      • AbstractSubscriptionsManager

        public AbstractSubscriptionsManager()
    • Method Detail

      • dataIndexToString

        public static java.lang.String dataIndexToString​(long c)
      • openSubscriptionInfo

        public SubscriptionInfo openSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück oder erstellt diese falls sie nicht existiert. Nachdem die Benutzung des Objekts beendet ist, muss SubscriptionInfo.close() aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.
        Specified by:
        openSubscriptionInfo in interface SubscriptionsManager
        Parameters:
        baseSubscriptionInfo - baseSubscriptionInfo
        Returns:
        Anmeldungsklasse
      • openExistingSubscriptionInfo

        public SubscriptionInfo openExistingSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück. Nachdem die Benutzung des Objekts beendet ist, muss (sofern Rückgabewert != null) SubscriptionInfo.close() aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.
        Specified by:
        openExistingSubscriptionInfo in interface SubscriptionsManager
        Parameters:
        baseSubscriptionInfo - baseSubscriptionInfo
        Returns:
        Anmeldungsklasseoder null falls nicht existent
      • getSubscriptionInfo

        public SubscriptionInfo getSubscriptionInfo​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
        Specified by:
        getSubscriptionInfo in interface SubscriptionsManager
        Parameters:
        baseSubscriptionInfo - baseSubscriptionInfo
        Returns:
        Anmeldungsklasse oder null falls zu dieser baseSubscriptionInfo keine Anmeldungsinfo vorliegt
      • addLocalSendSubscription

        public void addLocalSendSubscription​(ApplicationCommunicationInterface application,
                                             de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendSubscriptionInfo sendSubscriptionInfo)
        Meldet einen lokalen Sender oder eine lokale Quelle an
        Parameters:
        application - Verbindung
        sendSubscriptionInfo - Anmeldeparameter
      • removeLocalSendSubscription

        public void removeLocalSendSubscription​(ApplicationCommunicationInterface application,
                                                de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Meldet einen lokalen Sender oder eine lokale Quelle ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht
        Parameters:
        application - Verbindung
        baseSubscriptionInfo - Objekt und Attributgruppenverwendung
      • addLocalReceiveSubscription

        public void addLocalReceiveSubscription​(ApplicationCommunicationInterface application,
                                                de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveSubscriptionInfo receiveSubscriptionInfo)
        Meldet einen lokalen Empfänger oder eine lokale Senke an
        Parameters:
        application - Verbindung
        receiveSubscriptionInfo - Anmeldeparameter
      • removeLocalReceiveSubscriptions

        public void removeLocalReceiveSubscriptions​(ApplicationCommunicationInterface application,
                                                    de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Meldet einen lokalen Empfänger oder eine lokale Senke ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht
        Parameters:
        application - Verbindung
        baseSubscriptionInfo - Objekt und Attributgruppenverwendung
      • handleUserRightsChanged

        public void handleUserRightsChanged​(long userId)
        Prüft von allen Anmeldungen die den Benutzer betreffen die Rechte erneut
        Parameters:
        userId - Id des Benutzers
      • removeLocalSendSubscriptions

        public void removeLocalSendSubscriptions​(ApplicationCommunicationInterface application,
                                                 SubscriptionInfo subscriptionInfo)
        Meldet einen lokalen Senker oder eine lokale Quelle ab.
        Parameters:
        application - Anwendung
        subscriptionInfo - subscriptionInfo
      • removeLocalReceiveSubscriptions

        public void removeLocalReceiveSubscriptions​(ApplicationCommunicationInterface application,
                                                    SubscriptionInfo subscriptionInfo)
        Meldet einen lokalen Empfänger oder eine lokale Senke ab.
        Parameters:
        application - Anwendung
        subscriptionInfo - subscriptionInfo
      • removeAllSubscriptions

        public void removeAllSubscriptions​(ApplicationCommunicationInterface communication)
        Entfernt von einer Verbindung alle Anmeldungen (sinnvoll z.B. bei Terminierung der Verbindung)
        Parameters:
        communication - Verbindung
      • removeAllSubscriptions

        public void removeAllSubscriptions​(TransmitterCommunicationInterface communication)
        Entfernt von einer Verbindung alle Anmeldungen (sinnvoll z.B. bei Terminierung der Verbindung)
        Parameters:
        communication - Verbindung
      • handleTransmitterSubscriptionReceipt

        public void handleTransmitterSubscriptionReceipt​(TransmitterCommunicationInterface communication,
                                                         de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterSubscriptionType transmitterSubscriptionType,
                                                         de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo,
                                                         ConnectionState connectionState,
                                                         long mainTransmitterId)
        Description copied from interface: SubscriptionsManager
        behandelt eine Anmeldungsquittung von einem anderen Datenverteiler
        Specified by:
        handleTransmitterSubscriptionReceipt in interface SubscriptionsManager
        Parameters:
        communication - Verbindung zum anderen Dav
        transmitterSubscriptionType - Art der Anmeldung (Sender/Empfänger)
        baseSubscriptionInfo - Anmeldeinformation
        connectionState - Rückmeldung des anderen Datenverteilers (Zuständig, nicht zuständig, etc.)
        mainTransmitterId - Zentraldatenverteiler-ID sofern verfügbar
      • getNextDataIndex

        public long getNextDataIndex​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Description copied from interface: SubscriptionsManager
        Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
        Specified by:
        getNextDataIndex in interface SubscriptionsManager
        Parameters:
        baseSubscriptionInfo - Anmeldung
        Returns:
        Datenindex
      • getCurrentDataIndex

        public long getCurrentDataIndex​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Description copied from interface: SubscriptionsManager
        Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück
        Specified by:
        getCurrentDataIndex in interface SubscriptionsManager
        Parameters:
        baseSubscriptionInfo - Anmeldung
        Returns:
        Datenindex
      • getNextDataIndex

        public long getNextDataIndex​(SubscriptionInfo subscriptionInfo)
        Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
        Parameters:
        subscriptionInfo - Anmeldung
        Returns:
        Datenindex
      • connectToRemoteDrains

        public void connectToRemoteDrains​(SubscriptionInfo subscriptionInfo,
                                          java.util.Set<java.lang.Long> distributorsToUse)
        Description copied from interface: SubscriptionsManager
        Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
        Specified by:
        connectToRemoteDrains in interface SubscriptionsManager
        Parameters:
        subscriptionInfo - Anmeldeinformation
        distributorsToUse - Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
      • connectToRemoteSources

        public void connectToRemoteSources​(SubscriptionInfo subscriptionInfo,
                                           java.util.Set<java.lang.Long> distributorsToUse)
        Description copied from interface: SubscriptionsManager
        Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
        Specified by:
        connectToRemoteSources in interface SubscriptionsManager
        Parameters:
        subscriptionInfo - Anmeldeinformation
        distributorsToUse - Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
      • initializeUser

        public void initializeUser​(long userId)
        Initialisiert die Zugriffsrechte für den angegebenen Benutzer
        Parameters:
        userId - Benutzer-ID (muss in der lokalen Konfiguration existieren)