Class TelegramManager

java.lang.Object
de.bsvrz.dav.dav.main.TelegramManager
All Implemented Interfaces:
TelegramManagerTransactionInterface

public class TelegramManager extends Object implements TelegramManagerTransactionInterface
Diese Klasse verarbeitet ankommende Datentelegramme, prüft ob der Absender erlaubt war die Daten zu verschicken (Anmeldung gültig), wendet eventuelle AccessControlPlugins auf die Telegramme an und gibt sie dann an das passende SubscriptionInfo-Objekt weiter, welches die Telegramme an interessierte Empfänger weiterleitet.
  • Constructor Details

    • TelegramManager

      public TelegramManager(HighLevelConnectionsManagerInterface connectionsManager, de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking)
      Erstellt einen neuen TelegramManager
      Parameters:
      connectionsManager - Verbindungsverwaltung
      userRightsChecking - Welche Art von Rechteprüfung durchgeführt werden soll
  • Method Details

    • dumpTelegrams

      public static void dumpTelegrams(List<de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram> telegrams, de.bsvrz.dav.daf.main.impl.config.DafDataModel dataModel)
    • convertTelegramsToBytes

      public static byte[] convertTelegramsToBytes(List<de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram> telegrams)
    • setConfigurationAvailable

      public void setConfigurationAvailable(SelfClientDavConnection selfClientDavConnection, ApplicationStatusUpdater applicationStatusUpdater)
      Initialisiert Funktionen, die von der Konfiguration abhängen (z.B. Rechteprüfung)
      Parameters:
      selfClientDavConnection - eigene Datenverteiler-Verbindung
      applicationStatusUpdater - Klasse, die angemeldete Datensätze verschickt
    • getPluginFilterMap

      public Map<Long,List<AccessControlPlugin>> getPluginFilterMap()
      Gibt eine Map zurück, die als Key die AttributeGroupUsage-ID speichert und als Value alle zuständigen Plugins in einer Liste enthält
      Returns:
      eine unveränderliche Map vom Typ Map<Long, List<AccessControlPluginInterface>> (leer falls die Rechteprüfung deaktivert ist).
    • getSubscriptionsManager

      public HighLevelSubscriptionsManager getSubscriptionsManager()
    • getConnectionsManager

      public HighLevelConnectionsManagerInterface getConnectionsManager()
    • handleDataTelegram

      public void handleDataTelegram(CommunicationInterface communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterDataTelegram transmitterDataTelegram)
      Verarbeitet ein eingehendes Datentelegram von einem anderen Datenverteiler
      Parameters:
      communication - Verbindung über die das Telegramm eingeht
      transmitterDataTelegram - Telegram
    • handleDataTelegram

      public void handleDataTelegram(CommunicationInterface communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram applicationDataTelegram, long applicationId, boolean toCentralDistributor)
      Verarbeitet ein eingehendes Datentelegram
      Parameters:
      communication - Verbindung über die das Telegramm eingeht
      applicationDataTelegram - Telegram
      applicationId - ID der sendenden Applikation
      toCentralDistributor - wenn das Telegramm noch nicht beim Zentraldatenverteiler behandelt wurde, also der Datenindex noch nicht vernünftig gesetzt wurde
    • sendTelegramsFromTransaction

      public void sendTelegramsFromTransaction(boolean isSource, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram[] dataTelegrams, long applicationId)
      Description copied from interface: TelegramManagerTransactionInterface
      Sendet ein Telegram. Wird vom DavTransactionManager benutzt, um manuell Telegramme mit einem vorgegebenen Datenindex zu senden.
      Specified by:
      sendTelegramsFromTransaction in interface TelegramManagerTransactionInterface
      Parameters:
      isSource - true wenn Quelle
      dataTelegrams - Telegramm (oder mehrere falls gesplittet)
      applicationId - ID der sendenden Applikation
    • getNextDataIndex

      public long getNextDataIndex(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo info)
      Berechnet für eine Anmeldung den nächsten Datenindex und gibt diesen zurück
      Specified by:
      getNextDataIndex in interface TelegramManagerTransactionInterface
      Parameters:
      info - Anmeldungs-Info
      Returns:
      Ein Datenindex
    • notifySubscriptionRemoved

      public void notifySubscriptionRemoved(LocalSendingSubscription sendingSubscription)
      Benachrichtigt den _davTransactionManager dass eine lokale Anmeldung nicht mehr vorhanden ist. Der Transaktionsmanager meldet daraufhin eventuell vorhandene innere Datensätze ab.
      Parameters:
      sendingSubscription - Sender-Anmeldung
    • notifySubscriptionRemoved

      public void notifySubscriptionRemoved(LocalReceivingSubscription receivingSubscription)
      Benachrichtigt den _davTransactionManager dass eine lokale Anmeldung nicht mehr vorhanden ist. Der Transaktionsmanager meldet daraufhin eventuell vorhandene innere Datensätze ab.
      Parameters:
      receivingSubscription - Empfänger-Anmeldung
    • notifyIsNewCentralDistributor

      public void notifyIsNewCentralDistributor(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
    • notifyWasCentralDistributor

      public void notifyWasCentralDistributor(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)