Class NetworkRIP

Implemented Interfaces:
Runnable

public final class NetworkRIP
extends Netzwerk

Die Klasse NetworkRIP stellt den Kernbereich der Simulation des RIP Routing Algorithmus dar. Hier werden alle Netzwerkkomponenten verwaltet und von hieraus werden alle Ereignisse synchronisiert. NetworkRIP hat einen eigenen Thread falls das Programm als Client läuft.
See Also:
Netzwerk, NetworkRIP

Field Summary

private NetworkDemoRIP
demo
boolean
noupdatesending

Fields inherited from class .Netzwerk

DEBUG, canvas, currentLinkNumber, currentNodeNumber, forcedPaintLock, frame, infinity, infinityGuard, inspectRoutingTableRequest, linkAddRequest, linkRemoveRequest, nodeHeight, nodeRemoveRequest, nodeWidth, numLinks, numNodes, numSenders, sizeChangeLock, speed, speedChangeLock, startSendingRequest, stopSendingRequest, text, textLock

Fields inherited from class .SimulationObject

archChangeLock, archComponents, finished, focussedComponent, offsetChangeLock, remoteThread, simulation, tg, xOffset, yOffset

Constructor Summary

NetworkRIP(Simulation simulation, SimulationFrame frame, NetzCanvas canvas, int nodeWidth, int nodeHeight)
Netzwerk Konstruktor bekommt Referenzen auf das Simulationsobjekt, den Frame und das Zeichenbrett übergeben (zudem noch die Breite und Höhe eines Nodes in Pixeln).

Method Summary

LinkRIP
addLink(NodeRIP node1, NodeRIP node2)
Fügt eine neue Verbindung zwischen den übergebenen Routern ein.
NodeRIP
addNode(int x, int y)
Fügt einen neuen Router an den übergebenen Koordinaten dem Netz hinzu.
void
finishUp()
Beendet und löscht alle Netzwerkkomponenten Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
void
inspectRoutingTable(NodeRIP n)
Veranlaßt den als Parameter übergebenen Rechner ein Fenster mit seiner aktuellen Leitwegtabelle zu erzeugen Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
(package private) LinkRIP
lookUpLink(int id)
(package private) NodeRIP
lookUpNode(int id)
void
mouseDownNotify(Event e, int x, int y)
Reagiere auf Drücken der Maustaste.
void
mouseMoveNotify(Event e, int x, int y)
Reagiere auf Bewegungen des Mauszeigers.
boolean
noPeriodicUpdates()
Liefert wahr falls die Demonstration gerade aktiv ist.
void
removeLink(LinkRIP l)
Entfernt die als Parameter übergebene Verbindung Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
void
removeNode(NodeRIP n)
Entfernt den als Parameter übergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
void
resume()
Reaktiviert alle angehaltenen Netzwerkkomponenten Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
void
run()
void
startDemo()
Beendet alle Komponenten und startet die Demonstration THREADSAFE
void
startSending(NodeRIP n, NodeRIP m)
Starte Senden von Datenpacketen von dem als als Parameter übergebenen Rechner zu dem als Parameter uebergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
void
startSending(NodeRIP n, int to)
Starte Senden von Datenpacketen von dem als als Parameter übergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
void
stopDemo()
Beendet die Demonstration THREADSAFE
void
stopSending(NodeRIP n)
Stoppe das Senden von Datenpacketen von dem als als Parameter übergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
void
suspend()
Veranlaßt ein komplettes Anhalten aller aktiven Netzwerkkomponenten Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

Methods inherited from class .Netzwerk

acquireTextLock, addLink, forcedPaint, getCanvas, getFrame, getInfinity, getNodeHeight, getNodeWidth, getNumLinks, getNumNodes, getNumSenders, getSpeed, inspectRoutingTable, releaseTextLock, removeLink, removeNode, repaintAll, setInfinity, setNodeHeight, setNodeWidth, setSpeed, startSending, stopSending, write, writeln

Methods inherited from class .SimulationObject

getComponent, getSimulation, getThreadGroup, getXOffset, getYOffset, isFinished, startRemote, translate

Field Details

demo

private NetworkDemoRIP demo

noupdatesending

public boolean noupdatesending

Constructor Details

NetworkRIP

public NetworkRIP(Simulation simulation,
                  SimulationFrame frame,
                  NetzCanvas canvas,
                  int nodeWidth,
                  int nodeHeight)
Netzwerk Konstruktor bekommt Referenzen auf das Simulationsobjekt, den Frame und das Zeichenbrett übergeben (zudem noch die Breite und Höhe eines Nodes in Pixeln).

Method Details

addLink

public final LinkRIP addLink(NodeRIP node1,
                             NodeRIP node2)
Fügt eine neue Verbindung zwischen den übergebenen Routern ein. Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

addNode

public final NodeRIP addNode(int x,
                             int y)
Fügt einen neuen Router an den übergebenen Koordinaten dem Netz hinzu. Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet

finishUp

public final void finishUp()
Beendet und löscht alle Netzwerkkomponenten Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

inspectRoutingTable

public final void inspectRoutingTable(NodeRIP n)
Veranlaßt den als Parameter übergebenen Rechner ein Fenster mit seiner aktuellen Leitwegtabelle zu erzeugen Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

lookUpLink

(package private)  LinkRIP lookUpLink(int id)

lookUpNode

(package private)  NodeRIP lookUpNode(int id)

mouseDownNotify

public final void mouseDownNotify(Event e,
                                  int x,
                                  int y)
Reagiere auf Drücken der Maustaste. Das Ereignis wird vom NetzCanvas an diese Funktion weitergeleitet.

mouseMoveNotify

public final void mouseMoveNotify(Event e,
                                  int x,
                                  int y)
Reagiere auf Bewegungen des Mauszeigers. Wird vom NetzCanvas bzw. vom SimulationClient aufgerufen

noPeriodicUpdates

public final boolean noPeriodicUpdates()
Liefert wahr falls die Demonstration gerade aktiv ist.

removeLink

public final void removeLink(LinkRIP l)
Entfernt die als Parameter übergebene Verbindung Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

removeNode

public final void removeNode(NodeRIP n)
Entfernt den als Parameter übergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

resume

public final void resume()
Reaktiviert alle angehaltenen Netzwerkkomponenten Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

run

public void run()

startDemo

public final void startDemo()
Beendet alle Komponenten und startet die Demonstration THREADSAFE

startSending

public final void startSending(NodeRIP n,
                               NodeRIP m)
Starte Senden von Datenpacketen von dem als als Parameter übergebenen Rechner zu dem als Parameter uebergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

startSending

public final void startSending(NodeRIP n,
                               int to)
Starte Senden von Datenpacketen von dem als als Parameter übergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

stopDemo

public final void stopDemo()
Beendet die Demonstration THREADSAFE

stopSending

public final void stopSending(NodeRIP n)
Stoppe das Senden von Datenpacketen von dem als als Parameter übergebenen Rechner Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE
See Also:
NetworkRIP.startSending, NodeRIP, SimulationServer

suspend

public final void suspend()
Veranlaßt ein komplettes Anhalten aller aktiven Netzwerkkomponenten Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE