Class Netzwerk

Implemented Interfaces:
Runnable
Known Direct Subclasses:
Network, NetworkRIP

public abstract class Netzwerk
extends SimulationObject

original author Robert Denda, changes by Didier Gutacker

Field Summary

(package private) debug
DEBUG
protected NetzCanvas
canvas
protected int
currentLinkNumber
protected int
currentNodeNumber
protected Lock
forcedPaintLock
protected SimulationFrame
frame
protected int
infinity
protected Lock
infinityGuard
protected boolean
inspectRoutingTableRequest
protected boolean
linkAddRequest
protected boolean
linkRemoveRequest
protected int
nodeHeight
protected boolean
nodeRemoveRequest
protected int
nodeWidth
protected int
numLinks
protected int
numNodes
protected int
numSenders
protected Lock
sizeChangeLock
protected int
speed
protected Lock
speedChangeLock
protected boolean
startSendingRequest
protected boolean
stopSendingRequest
protected TextArea
text
protected Lock
textLock

Fields inherited from class .SimulationObject

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

Constructor Summary

Netzwerk(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

void
acquireTextLock()
Blockt bis das Lock mit dem die Textausgabe synchronisiert wird frei ist
void
addLink()
Signalisiert, daß die "Neue Verbindung" Taste gedrückt wurde
void
forcedPaint()
Veranlaßt den aktuellen Thread alle Netzwerkkomponenten eigenständig neu zu zeichnen.
NetzCanvas
getCanvas()
Liefert das Zeichenbrett auf dem das Netzwerk dargestellt wird
SimulationFrame
getFrame()
Liefert den aktuellen Frame des Netzwerks
int
getInfinity()
Liefert den aktuellen Wert von Infinity THREADSAFE
int
getNodeHeight()
Liefert die aktuelle Höhe der Rechnersymbole THREADSAFE
int
getNodeWidth()
Liefert die aktuelle Breite der Rechnersymbole THREADSAFE
int
getNumLinks()
Liefert die Anzahl der sich im Netz befindenen Verbindungen THREADSAFE
int
getNumNodes()
Liefert die Anzahl der sich im Netz befindenen Rechner THREADSAFE
int
getNumSenders()
Liefert die Anzahl der zur Zeit aktiven Sender THREADSAFE
int
getSpeed()
Liefert die aktuelle Simulationsgeschwindigkeit 0 = langsam, 1 = normal, 2 = schnell THREADSAFE
void
inspectRoutingTable()
Signalisiert, daß die "Rechner Info" Taste gedrückt wurde
void
releaseTextLock()
Gibt das Lock mit dem die Textausgabe synchronisiert wird wieder frei
void
removeLink()
Signalisiert, daß die "Entferne Verbindung" Taste gedrückt wurde
void
removeNode()
Signalisiert, daß die "Entferne Rechner" Taste gedrückt wurde
void
repaintAll()
Sendet an alle Netzwerkkomponenten ein "Paint Request" worauf deren Threads dann asynchron das Zeichnen der jeweiligen Objekte übernehmen

THREADSAFE

void
setInfinity(int infinity)
Setzt den aktuellen Wert von Infinity THREADSAFE
void
setNodeHeight(int h)
Ändert die Höhe der Rechnersymbole.
void
setNodeWidth(int w)
Ändert die Breite der Rechnersymbole.
void
setSpeed(int i)
Setzt die Simulationsgeschwindigkeit auf den übergebenen Wert.
void
startSending()
Signalisiert, daß die "Starte Senden" Taste gedrückt wurde
void
stopSending()
Signalisiert, daß die "Stopp Senden" Taste gedrückt wurde
void
write(String s)
Schreibt den übergebenen Text in den Textbereich des Frames THREADSAFE
void
writeln(String s)
Schreibt den übergebenen Text mit abschließendem Zeilenvorschub in den Textbereich des Frames THREADSAFE

Methods inherited from class .SimulationObject

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

Field Details

DEBUG

(package private)  debug DEBUG

canvas

protected NetzCanvas canvas

currentLinkNumber

protected int currentLinkNumber

currentNodeNumber

protected int currentNodeNumber

forcedPaintLock

protected Lock forcedPaintLock

frame

protected SimulationFrame frame

infinity

protected int infinity

infinityGuard

protected Lock infinityGuard

inspectRoutingTableRequest

protected boolean inspectRoutingTableRequest

linkAddRequest

protected boolean linkAddRequest

linkRemoveRequest

protected boolean linkRemoveRequest

nodeHeight

protected int nodeHeight

nodeRemoveRequest

protected boolean nodeRemoveRequest

nodeWidth

protected int nodeWidth

numLinks

protected int numLinks

numNodes

protected int numNodes

numSenders

protected int numSenders

sizeChangeLock

protected Lock sizeChangeLock

speed

protected int speed

speedChangeLock

protected Lock speedChangeLock

startSendingRequest

protected boolean startSendingRequest

stopSendingRequest

protected boolean stopSendingRequest

text

protected TextArea text

textLock

protected Lock textLock

Constructor Details

Netzwerk

public Netzwerk(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).
See Also:
Simulation, SimulationFram, NetzCanvas

Method Details

acquireTextLock

public final void acquireTextLock()
Blockt bis das Lock mit dem die Textausgabe synchronisiert wird frei ist

addLink

public final void addLink()
Signalisiert, daß die "Neue Verbindung" Taste gedrückt wurde

forcedPaint

public final void forcedPaint()
Veranlaßt den aktuellen Thread alle Netzwerkkomponenten eigenständig neu zu zeichnen. THREADSAFE

getCanvas

public final NetzCanvas getCanvas()
Liefert das Zeichenbrett auf dem das Netzwerk dargestellt wird

getFrame

public final SimulationFrame getFrame()
Liefert den aktuellen Frame des Netzwerks

getInfinity

public final int getInfinity()
Liefert den aktuellen Wert von Infinity THREADSAFE

getNodeHeight

public final int getNodeHeight()
Liefert die aktuelle Höhe der Rechnersymbole THREADSAFE

getNodeWidth

public final int getNodeWidth()
Liefert die aktuelle Breite der Rechnersymbole THREADSAFE

getNumLinks

public final int getNumLinks()
Liefert die Anzahl der sich im Netz befindenen Verbindungen THREADSAFE

getNumNodes

public final int getNumNodes()
Liefert die Anzahl der sich im Netz befindenen Rechner THREADSAFE

getNumSenders

public final int getNumSenders()
Liefert die Anzahl der zur Zeit aktiven Sender THREADSAFE

getSpeed

public final int getSpeed()
Liefert die aktuelle Simulationsgeschwindigkeit 0 = langsam, 1 = normal, 2 = schnell THREADSAFE

inspectRoutingTable

public final void inspectRoutingTable()
Signalisiert, daß die "Rechner Info" Taste gedrückt wurde

releaseTextLock

public final void releaseTextLock()
Gibt das Lock mit dem die Textausgabe synchronisiert wird wieder frei

removeLink

public final void removeLink()
Signalisiert, daß die "Entferne Verbindung" Taste gedrückt wurde

removeNode

public final void removeNode()
Signalisiert, daß die "Entferne Rechner" Taste gedrückt wurde

repaintAll

public final void repaintAll()
Sendet an alle Netzwerkkomponenten ein "Paint Request" worauf deren Threads dann asynchron das Zeichnen der jeweiligen Objekte übernehmen

THREADSAFE


setInfinity

public final void setInfinity(int infinity)
Setzt den aktuellen Wert von Infinity THREADSAFE

setNodeHeight

public final void setNodeHeight(int h)
Ändert die Höhe der Rechnersymbole. THREADSAFE

setNodeWidth

public final void setNodeWidth(int w)
Ändert die Breite der Rechnersymbole. THREADSAFE

setSpeed

public final void setSpeed(int i)
Setzt die Simulationsgeschwindigkeit auf den übergebenen Wert. 0 = langsam, 1 = normal, 2 = schnell Im Falle des Server-Betriebs wird entsprechendes Ereignis an alle Clients gesendet THREADSAFE

startSending

public final void startSending()
Signalisiert, daß die "Starte Senden" Taste gedrückt wurde

stopSending

public final void stopSending()
Signalisiert, daß die "Stopp Senden" Taste gedrückt wurde

write

public final void write(String s)
Schreibt den übergebenen Text in den Textbereich des Frames THREADSAFE

writeln

public final void writeln(String s)
Schreibt den übergebenen Text mit abschließendem Zeilenvorschub in den Textbereich des Frames THREADSAFE