|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.dav.dav.main.RoutingTable
public class RoutingTable
Die Klasse ist für die Weginformationsverwaltung zuständig. Sie stellt die Tabelle der Weginformationen dar.
Nested Class Summary | |
---|---|
(package private) class |
RoutingTable.NodeInfo
Repräsentiert einen Knoten. |
(package private) class |
RoutingTable.RoutingInfo
Repräsentiert eine Zelle in der Tabelle |
(package private) class |
RoutingTable.RoutingInfoMatrix
Die Tabelle der Weginformationen |
Field Summary | |
---|---|
private int |
_columns
Anzahl der Spalten |
private List<RoutingTable.NodeInfo> |
_columnToNodeInfo
zu einem Knoten gehörige Spalte aus der Tabelle |
private DistributionInterface |
_distribution
Die über Änderungen zu benachrichtigende Komponente |
private Map<Long,RoutingTable.NodeInfo> |
_idToNodeInfo
Id des Knotens |
private long |
_localNodeId
ID des lokalen Datenverteilers |
private RoutingTable.RoutingInfoMatrix |
_routingInfos
Tabelle der Weginformationen |
private int |
_rows
Anzahl der Reihen |
private List<RoutingTable.NodeInfo> |
_rowToNodeInfo
zu einem Knoten gehörige Reihe aus der Tabelle |
Constructor Summary | |
---|---|
RoutingTable(DistributionInterface distribution,
long localNodeId)
Erzeugt ein neues Objekt mit den gegebenen Parametern. |
Method Summary | |
---|---|
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. |
(package private) boolean |
containsIdToNodeInfo(RoutingConnectionInterface connection)
Diese Methode wird für automatisierte Tests benötigt und prüft, ob ein RoutingConnectionInterface Objekt in die entsprechenden
Datenstruktur eingetragen wurde. |
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. |
String |
toString()
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,
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. |
private void |
updateAll()
Aktualisiert die komplette Tabelle. |
private void |
updateColumn(RoutingTable.NodeInfo destinationNode)
Aktualisiert die Spalte zu einem Zielknoten. |
private void |
updateRow(RoutingTable.NodeInfo routingNode)
Aktualisiert die Zeile zu einem Zwischenknoten. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private final List<RoutingTable.NodeInfo> _rowToNodeInfo
private final List<RoutingTable.NodeInfo> _columnToNodeInfo
private final Map<Long,RoutingTable.NodeInfo> _idToNodeInfo
private final RoutingTable.RoutingInfoMatrix _routingInfos
private int _columns
private int _rows
private final DistributionInterface _distribution
private long _localNodeId
Constructor Detail |
---|
public RoutingTable(DistributionInterface distribution, long localNodeId)
distribution
- Die über Änderungen zu benachrichtigende Komponente.localNodeId
- ID des lokalen DatenverteilersMethod Detail |
---|
public RoutingConnectionInterface findBestConnection(long destinationNodeId)
destinationNodeId
- ID des Zielknotens
null
, falls es keine Verbindung zum Zielknoten gibt.public void addConnection(RoutingConnectionInterface connection)
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.
connection
- Repräsentant der Datenverteilerverbindungboolean containsIdToNodeInfo(RoutingConnectionInterface connection)
RoutingConnectionInterface
Objekt in die entsprechenden
Datenstruktur eingetragen wurde.
connection
- Verbindung, die in der Datenstruktur _idToNodeInfo
eingetragen sein muss.
true
, wenn das Objekte connection
in der oben genannten Datenstruktur eingetragen ist.public void removeConnection(RoutingConnectionInterface connection)
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.
connection
- Repräsentant der Datenverteilerverbindungpublic void update(long fromNodeId, RoutingUpdate[] routingUpdates)
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.
fromNodeId
- ID eines Eintrags in routingTableroutingUpdates
- Gewichte der Wege zwischen dem aktuellen Datenverteiler und den Datenverteilernpublic final String toString()
toString
in class Object
private void updateAll()
private void updateColumn(RoutingTable.NodeInfo destinationNode)
destinationNode
- Zielknotenprivate void updateRow(RoutingTable.NodeInfo routingNode)
routingNode
- Zwischenknoten
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |