Class AbstractSubscriptionsManager

java.lang.Object
de.bsvrz.dav.dav.main.AbstractSubscriptionsManager
All Implemented Interfaces:
SubscriptionsManager
Direct Known Subclasses:
HighLevelSubscriptionsManager

public abstract class AbstractSubscriptionsManager
extends java.lang.Object
implements SubscriptionsManager
  • Field Details

    • _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 Details

    • AbstractSubscriptionsManager

      public AbstractSubscriptionsManager()
  • Method Details

    • 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
    • updateDestinationRoute

      public void updateDestinationRoute​(long transmitterId, TransmitterCommunicationInterface oldConnection, TransmitterCommunicationInterface newConnection)
      Description copied from interface: SubscriptionsManager
      Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
      Specified by:
      updateDestinationRoute in interface SubscriptionsManager
      Parameters:
      transmitterId - Dav-Id
      oldConnection - Alte Verbindung
      newConnection - Neue bessere Verbindung
    • 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
    • removeSubscriptionInfo

      public void removeSubscriptionInfo​(SubscriptionInfo subscriptionInfo)
      Description copied from interface: SubscriptionsManager
      Entfernt eine Anmeldeinformation. Es dürfen beim Aufruf dieser Methode keine Anmeldungen mehr bestehen.
      Specified by:
      removeSubscriptionInfo in interface SubscriptionsManager
      Parameters:
      subscriptionInfo - Anmeldeinformation
    • 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
    • getAllSubscriptions

      public java.util.Collection<? extends Subscription> getAllSubscriptions​(CommunicationInterface communicationInterface)
    • initializeUser

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