Class RoutingTable


  • public class RoutingTable
    extends java.lang.Object
    Die Klasse ist für die Weginformationsverwaltung zuständig. Sie stellt die Tabelle der Weginformationen dar.
    • Constructor Summary

      Constructors 
      Constructor Description
      RoutingTable​(DistributionInterface distribution, long localNodeId)
      Erzeugt ein neues Objekt mit den gegebenen Parametern.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addConnection​(RoutingConnectionInterface connection)
      Diese Methode wird von der Wegverwaltung aufgerufen und es wird überprüft, ob ein Eintrag mit dem spezifizierten Repräsentanten der Datenverteilerverbindung vorhanden ist.
      void dumpRoutingTable()  
      RoutingConnectionInterface findBestConnection​(long destinationNodeId)
      Diese Methode wird von der Wegverwaltung aufgerufen.
      void removeConnection​(RoutingConnectionInterface connection)
      Diese Methode wird von der Wegverwaltung aufgerufen und es wird überprüft, ob ein Eintrag mit dem spezifizierten Repräsentanten der Datenverteilerverbindung connection vorhanden ist.
      java.lang.String toString()
      Diese Methode schreibt alle Ziele, die von dem Ausgangsknoten(Ausgangs-DAV) zu erreichen sind in einen String, und gibt diesen zurück.
      java.lang.String toString​(boolean showAll)
      Diese Methode schreibt alle Ziele, die von dem Ausgangsknoten(Ausgangs-DAV) zu erreichen sind in einen String, und gibt diesen zurück.
      void update​(long fromNodeId, de.bsvrz.dav.daf.communication.lowLevel.telegrams.RoutingUpdate[] routingUpdates)
      Diese Methode wird von der Wegverwaltung aufgerufen und es wird überprüft, ob ein Eintrag mit der als Parameter spezifizierten fromNodeId vorhanden ist.
      • Methods inherited from class java.lang.Object

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

      • RoutingTable

        public RoutingTable​(DistributionInterface distribution,
                            long localNodeId)
        Erzeugt ein neues Objekt mit den gegebenen Parametern.
        Parameters:
        distribution - Die über Änderungen zu benachrichtigende Komponente.
        localNodeId - ID des lokalen Datenverteilers
    • Method Detail

      • findBestConnection

        public RoutingConnectionInterface findBestConnection​(long destinationNodeId)
        Diese Methode wird von der Wegverwaltung aufgerufen. Gibt es zur angegebenen Ziel-ID (Knoten) einen Eintrag, wird die Verbindunginformation zurückgegeben, über die dieses Ziel am Besten erreicht werden kann.
        Parameters:
        destinationNodeId - ID des Zielknotens
        Returns:
        Routing-Repräsentant der Datenverteilerverbindung, oder null, falls es keine Verbindung zum Zielknoten gibt.
      • addConnection

        public void addConnection​(RoutingConnectionInterface connection)
        Diese Methode wird von der Wegverwaltung aufgerufen und es wird überprüft, ob ein Eintrag mit dem spezifizierten Repräsentanten der Datenverteilerverbindung vorhanden ist. Ist dies nicht der Fall, so wird ein neuer Eintrag erzeugt und in die Tabelle aufgenommen. Wenn der Eintrag vorhanden ist und dessen Repräsentant der Datenverteilerverbindung nicht vorhanden ist, wird dieser Eintrag durch den als übergebenen Repräsentanten aktualisiert. Hat sich durch diese Änderung der beste Weg zu einem Datenverteiler geändert, so wird das DistributionInterface darüber benachrichtigt. Haben sich die Gewichte der einzelnen Wege über einen bestimmten Datenverteiler geändert, so werden die Änderungen in ein TransmitterBestWayUpdate-Telegramm verpackt und über die Datenverteiler gesendet.
        Parameters:
        connection - Repräsentant der Datenverteilerverbindung
      • removeConnection

        public void removeConnection​(RoutingConnectionInterface connection)
        Diese Methode wird von der Wegverwaltung aufgerufen und es wird überprüft, ob ein Eintrag mit dem spezifizierten Repräsentanten der Datenverteilerverbindung connection vorhanden ist. Ist dies der Fall, so wird dessen Repräsentant der Datenverteilerverbindung gelöscht. Alle Weginformationen über die nicht mehr vorhandene Verbindung werden zurückgesetzt. Hat sich durch diese Änderung der beste Weg zu einem Datenverteiler geändert, so wird DistributionInterface darüber benachrichtigt. Haben sich die Gewichte der einzelnen Wege über einen bestimmten Datenverteiler geändert, so werden die Änderungen in ein TransmitterBestWayUpdate-Telegramm verpackt und über die Protokollsteuerung DaV-DaV zu diesem Datenverteiler gesendet.
        Parameters:
        connection - Repräsentant der Datenverteilerverbindung
      • update

        public void update​(long fromNodeId,
                           de.bsvrz.dav.daf.communication.lowLevel.telegrams.RoutingUpdate[] routingUpdates)
        Diese Methode wird von der Wegverwaltung aufgerufen und es wird überprüft, ob ein Eintrag mit der als Parameter spezifizierten fromNodeId vorhanden ist. Wenn der Eintrag vorhanden ist, werden die Gewichte der Wege zwischen dem aktuellen Datenverteiler und den Datenverteilern, die in RoutingUpdate spezifiziert sind, aktualisiert. Dabei muß der Datenverteiler mit der ID fromNodeId auf diesem Weg liegen. Die Aktualisierung erfolgt durch das Addieren des Gewichts der Verbindung zwischen aktuellem Datenverteiler und fromNodeId und die jeweiligen RoutingUpdate-Gewichte. Hat sich durch diese Änderung der beste Weg zu einem Datenverteiler geändert, so wird DistributionInterface darüber benachrichtigt. Haben sich die Gewichte der einzelnen Wege zu einem bestimmten Datenverteiler geändert, so werden die Änderungen in ein TransmitterBestWayUpdate-Telegramm verpackt und über die Protokollsteuerung DaV-DaV zu den Nachbardatenverteilern gesendet.
        Parameters:
        fromNodeId - ID eines Eintrags in routingTable
        routingUpdates - Gewichte der Wege zwischen dem aktuellen Datenverteiler und den Datenverteilern
      • toString

        public final java.lang.String toString()
        Diese Methode schreibt alle Ziele, die von dem Ausgangsknoten(Ausgangs-DAV) zu erreichen sind in einen String, und gibt diesen zurück.
        Overrides:
        toString in class java.lang.Object
        Returns:
        Matrix der erreichbaren Ziele in einem String
      • toString

        public final java.lang.String toString​(boolean showAll)
        Diese Methode schreibt alle Ziele, die von dem Ausgangsknoten(Ausgangs-DAV) zu erreichen sind in einen String, und gibt diesen zurück.
        Returns:
        Matrix der erreichbaren Ziele in einem String
      • dumpRoutingTable

        public void dumpRoutingTable()