Interface SubscriptionsManager

All Known Implementing Classes:
AbstractSubscriptionsManager, HighLevelSubscriptionsManager

public interface SubscriptionsManager
Klasse für die Verwaltung der Anmeldungen
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    connectToRemoteDrains(SubscriptionInfo subscriptionInfo, Set<Long> distributorsToUse)
    Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
    void
    connectToRemoteSources(SubscriptionInfo subscriptionInfo, Set<Long> distributorsToUse)
    Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
    Gibt die beste Verbindung zum angegebenen Datenverteiler zurück
    long
    getCurrentDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück
    long
    getNextDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
    getPotentialCentralDistributors(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurück
    getSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
    long
    Gibt die eigene Dav-ID zurück
    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)
    behandelt eine Anmeldungsquittung von einem anderen Datenverteiler
    boolean
    isActionAllowed(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info, de.bsvrz.dav.daf.accessControl.internal.UserAction action)
    Führt eine allgemeine Rechteprüfung durch
    boolean
    isActionAllowed(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info, de.bsvrz.dav.daf.accessControl.internal.UserAction action)
    Führt eine Rechteprüfung bei einer lokalen Anmeldung durch.
    void
    notifyIsNewCentralDistributor(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung Zentraldatenverteiler geworden ist, z.B. um die Anmeldelisten zu aktualisieren
    void
    notifyWasCentralDistributor(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung nicht mehr Zentraldatenverteiler ist, z.B. um die Anmeldelisten zu aktualisieren
    objectToString(long objectId)
    Wandelt ein Objekt in darstellbaren Text um
    openExistingSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
    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.
    void
    Entfernt eine Anmeldeinformation.
    subscriptionToString(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    Wandlt eine Anmeldung in einen darstellbaren Text um
    void
    Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
  • Method Details

    • openSubscriptionInfo

      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.
      Parameters:
      baseSubscriptionInfo - baseSubscriptionInfo
      Returns:
      Anmeldungsklasse
    • openExistingSubscriptionInfo

      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.
      Parameters:
      baseSubscriptionInfo - baseSubscriptionInfo
      Returns:
      Anmeldungsklasseoder null falls nicht existent
    • getSubscriptionInfo

      SubscriptionInfo getSubscriptionInfo(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück. Im Unterschied zu openExistingSubscriptionInfo wird das Objekt nicht für Anmeldungen geöffnet, es dürfen daher keine An-/Abmeldungen durchgeführt werden.
      Parameters:
      baseSubscriptionInfo - baseSubscriptionInfo
      Returns:
      Anmeldungsklasse oder null falls zu dieser baseSubscriptionInfo keine Anmeldungsinfo vorliegt
    • isActionAllowed

      boolean isActionAllowed(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info, de.bsvrz.dav.daf.accessControl.internal.UserAction action)
      Führt eine allgemeine Rechteprüfung durch
      Parameters:
      userLogin - Benutzer-ID
      info - Anmeldeinfo
      action - Aktion
      Returns:
      true wenn die Aktion erlaubt ist, sonst false
    • isActionAllowed

      boolean isActionAllowed(ApplicationCommunicationInterface application, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info, de.bsvrz.dav.daf.accessControl.internal.UserAction action)
      Führt eine Rechteprüfung bei einer lokalen Anmeldung durch. Hier werden weitere Besonderheiten geprüft, z. B. darf sich eine Applikation nur auf das eigene Applikationsobjekt anmelden, nicht auf fremde.
      Parameters:
      application - Applikation
      info - Anmeldeinfo
      action - Aktion
      Returns:
      true wenn die Aktion erlaubt ist, sonst false
    • notifyIsNewCentralDistributor

      void notifyIsNewCentralDistributor(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung Zentraldatenverteiler geworden ist, z.B. um die Anmeldelisten zu aktualisieren
      Parameters:
      baseSubscriptionInfo - Anmeldung
    • notifyWasCentralDistributor

      void notifyWasCentralDistributor(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Wird aufgerufen, wenn dieser Datenverteiler für eine Anmeldung nicht mehr Zentraldatenverteiler ist, z.B. um die Anmeldelisten zu aktualisieren
      Parameters:
      baseSubscriptionInfo - Anmeldung
    • getPotentialCentralDistributors

      List<Long> getPotentialCentralDistributors(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt zu einer Anmeldungen die potentiellen Zentraldatenverteiler zurück
      Parameters:
      baseSubscriptionInfo - Anmeldung
      Returns:
      Zentraldatenverteiler-IDs
    • getBestConnectionToRemoteDav

      TransmitterCommunicationInterface getBestConnectionToRemoteDav(long remoteDav)
      Gibt die beste Verbindung zum angegebenen Datenverteiler zurück
      Parameters:
      remoteDav - Datenverteiler-ID
      Returns:
      die beste Verbindung zum angegebenen Datenverteiler
    • removeSubscriptionInfo

      void removeSubscriptionInfo(SubscriptionInfo subscriptionInfo)
      Entfernt eine Anmeldeinformation. Es dürfen beim Aufruf dieser Methode keine Anmeldungen mehr bestehen.
      Parameters:
      subscriptionInfo - Anmeldeinformation
    • connectToRemoteDrains

      void connectToRemoteDrains(SubscriptionInfo subscriptionInfo, Set<Long> distributorsToUse)
      Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
      Parameters:
      subscriptionInfo - Anmeldeinformation
      distributorsToUse - Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
    • connectToRemoteSources

      void connectToRemoteSources(SubscriptionInfo subscriptionInfo, Set<Long> distributorsToUse)
      Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
      Parameters:
      subscriptionInfo - Anmeldeinformation
      distributorsToUse - Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilern
    • subscriptionToString

      String subscriptionToString(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Wandlt eine Anmeldung in einen darstellbaren Text um
      Parameters:
      baseSubscriptionInfo - Anmeldung
      Returns:
      Text
    • objectToString

      String objectToString(long objectId)
      Wandelt ein Objekt in darstellbaren Text um
      Parameters:
      objectId - Objekt
      Returns:
      Text
    • getThisTransmitterId

      long getThisTransmitterId()
      Gibt die eigene Dav-ID zurück
      Returns:
      die eigene Dav-ID
    • handleTransmitterSubscriptionReceipt

      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)
      behandelt eine Anmeldungsquittung von einem anderen Datenverteiler
      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

      void updateDestinationRoute(long transmitterId, TransmitterCommunicationInterface oldConnection, TransmitterCommunicationInterface newConnection)
      Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
      Parameters:
      transmitterId - Dav-Id
      oldConnection - Alte Verbindung
      newConnection - Neue bessere Verbindung
    • getNextDataIndex

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

      long getCurrentDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
      Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück
      Parameters:
      baseSubscriptionInfo - Anmeldung
      Returns:
      Datenindex