Package de.bsvrz.dav.dav.main
Class BestWayManager
- java.lang.Object
-
- de.bsvrz.dav.dav.main.BestWayManager
-
- All Implemented Interfaces:
BestWayManagerInterface
public class BestWayManager extends java.lang.Object implements BestWayManagerInterface
Diese Komponente verwaltet die aktuellen Weginformationen zu den anderen Datenverteilern. Diese Komponente hat verschiedene Methoden, so dass die Verbindungsverwaltung darauf zugreifen kann. Die eigentliche Verwaltung wird in der Klasse RoutingTable realisiert.
-
-
Constructor Summary
Constructors Constructor Description BestWayManager(long transmitterId, DistributionInterface distribution, ListsManagerInterface listsManager)
Erzeugt eine Instanz dieser Komponente und hält für die interne Kommunikation eine Referenz auf die Verbindungsverwaltung fest.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addWay(RoutingConnectionInterface connection)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine neue Verbindung zu einem Datenverteiler aufgebaut wurde.void
dumpRoutingTable()
long
getBestWay(long destinationDavId)
Bestimmt den Datenverteiler über den der günstigste Weg zu einem Zieldatenverteiler aufgebaut werden kann.void
update(RoutingConnectionInterface connection, de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterBestWayUpdate transmitterBestWayUpdate)
Diese Methode wird von der Protokollsteuerung aufgerufen, wenn eine neue Weginformationsnachricht angekommen ist.
-
-
-
Constructor Detail
-
BestWayManager
public BestWayManager(long transmitterId, DistributionInterface distribution, ListsManagerInterface listsManager)
Erzeugt eine Instanz dieser Komponente und hält für die interne Kommunikation eine Referenz auf die Verbindungsverwaltung fest. Eine Instanz der RoutingTable wird erzeugt und für die Weginformationsverwaltung bereitgestellt- Parameters:
transmitterId
- Eigene Id des Datenverteilersdistribution
- Die Verbindungsverwaltung des DatenverteilerslistsManager
- Verwaltung von Anmeldelistentelegrammen
-
-
Method Detail
-
getBestWay
public final long getBestWay(long destinationDavId)
Bestimmt den Datenverteiler über den der günstigste Weg zu einem Zieldatenverteiler aufgebaut werden kann. Diese Methode wird von der Verbindungsverwaltung aufgerufen, um den besten Weg zu einem Datenverteiler zu bestimmen. Sie ruft die findBestConnection- Methode der RoutingTable auf und gibt die ID des Datenverteilers zurück, über den der optimale Weg läuft. Wenn kein Weg zum spezifizierten Datenverteiler existiert, wird-1
zurückgegeben.- Specified by:
getBestWay
in interfaceBestWayManagerInterface
- Parameters:
destinationDavId
- Objekt-ID des Zieldatenverteilers.- Returns:
- Objekt-ID des Datenverteilers, über den der günstigste Weg läuft, oder
-1
, falls keine Verbindung zum Zieldatenverteiler existiert.
-
addWay
public void addWay(RoutingConnectionInterface connection)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine neue Verbindung zu einem Datenverteiler aufgebaut wurde. Zuerst wird die addConnection-Methode der RoutingTable aufgerufen, um einen neuen Eintrag in der Wegverwaltungstabelle zu erzeugen. Danach wird die addEntry-Methode der Anmeldelistenverwaltung aufgerufen, um für den neuen Datenverteiler eine entsprechende Anmeldungsliste anzulegen.- Parameters:
connection
- Verbindung, repräsentiert einen Eintrag in der RoutingTable
-
update
public final void update(RoutingConnectionInterface connection, de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterBestWayUpdate transmitterBestWayUpdate)
Diese Methode wird von der Protokollsteuerung aufgerufen, wenn eine neue Weginformationsnachricht angekommen ist. Zuerst wird die update-Methode der RoutingTable aufgerufen, um die besten Wege der spezifizierten Verbindungen in der Wegverwaltungstabelle zu aktualisieren. Da eine Änderung der besten Wege auch eine Änderung der Zulieferer eines Antrags bei der Zuliefererdatenverwaltung hervorrufen kann, wird pro Änderung die addEntry-Methode der Zuliefererdatenverwaltung aufgerufen.- Parameters:
connection
- Verbindung, repräsentiert durch Eintrag in der routingTabletransmitterBestWayUpdate
- Telegramm zur Aktualisierung der Matrix der günstigsten Wege
-
dumpRoutingTable
public void dumpRoutingTable()
-
-