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 and 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.
|
Modifier and Type | Method and 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,
TransmitterBestWayUpdate transmitterBestWayUpdate)
Diese Methode wird von der Protokollsteuerung aufgerufen, wenn eine neue Weginformationsnachricht angekommen ist.
|
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
transmitterId
- Eigene Id des Datenverteilersdistribution
- Die Verbindungsverwaltung des DatenverteilerslistsManager
- Verwaltung von Anmeldelistentelegrammenpublic 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.getBestWay
in interface BestWayManagerInterface
destinationDavId
- Objekt-ID des Zieldatenverteilers.-1
, falls keine Verbindung zum Zieldatenverteiler existiert.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.
connection
- Verbindung, repräsentiert einen Eintrag in der RoutingTablepublic final void update(RoutingConnectionInterface connection, 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.
connection
- Verbindung, repräsentiert durch Eintrag in der routingTabletransmitterBestWayUpdate
- Telegramm zur Aktualisierung der Matrix der günstigsten Wegepublic void dumpRoutingTable()