Class Netzwerkdarstellung

Implemented Interfaces:
Runnable

(package private) class Netzwerkdarstellung
extends Canvas
implements Runnable

See Also:
Netzknoten, HotPotato, Oberflaeche

Field Summary

private Netzknoten[]
Netzwerk
private int
aktuelle_id
int
anim_delay
private int
anim_dicke
private int[]
anim_flussfeld
private Point
anim_oben
private boolean
anim_oben_laeuft
private Point
anim_punkt
private boolean
animation_ende
private boolean
animation_laeuft
Variablen fuer die Animation
private static int
anzahl_aus
private static int
anzahl_ein
(package private) int
ausstoss
private boolean
beruehrt
private static int
breite
private Dimension
d
private boolean
effels
private Oberflaeche
fenster
private int[]
flussfeld
private int
flussfeldgroesse
private static int
hoehe
private Image[]
imagefeld
private Point
lo
private HotPotato
mainapplet
private int
maxComponentHeight
private int
maxComponentWidth
private static int
maxknoten
private int
netzknotenzahl
(package private) Thread
netzwerkthread
private static int
qb
private static int
qh
private boolean
repaint_laeuft
private Point
ru
private boolean
sflag
private int
startknoten
private ThreadGroup
threadgroup
(package private) MediaTracker
tracker
private boolean
zflag
private int
zielknoten

Constructor Summary

Netzwerkdarstellung(Oberflaeche fen, HotPotato m)
Konstruktor

Method Summary

void
addknoten(String art)
neuen Knoten einfuegen
void
aktualisiere_netzknoten()
Netzknoten aktualisieren
void
anim_ausgang(int knotenzahl, int queuezahl)
Ausgangsanimation bei Netzknoten Netzwerk[netzknotenzahl] und der Queue queuezahl
void
anim_eingang(int knotenzahl, int queuezahl)
Animation Eingang Netzknoten Netzwerk[t] in Queue queuezahl
void
berechnungen()
Berechnen der Positionen der Netzknoten in der Netzwerkuebersicht
void
demonetz()
Standard-Demonstrationsnetzwerk
void
effelsberg_demonetz()
Demonstrationsnetzwerk von Prof.
int
find(int x, int y)
Pruefen, ob Mauszeiger ueber einem Netzknoten
Netzknoten
gib_akt_knoten()
Gibt aktuellen Netzknoten zurueck
int
gib_aktuelle_id()
Gibt die ID des aktuellen Netzknotens zurueck
boolean
gib_anim_laeuft()
Gibt den Zustand der Animation zureuck
int
gib_ausstoss()
gibt die Zahl der Datenpakete die pro Durchlauf der ``forever´´-Schleife der ``run´´-Methode im Startknoten erzeugt werden
int
gib_netzknotenzahl()
Gibt die Anzahl an Knoten im dargestellten Netzwerk zurueck
int
gib_queueraten(int temp)
Gibt die Ausstossraten der Queues des aktuellen Netzknotens zurueck
void
loesche_datenpaket()
Wird die Anmation durch den Stop-Button beendet, bleiben die zuletzt gezeichnten Datenpakete stehen, deshalb muessen sie nachtraeglich geloescht werden
void
loesche_netzwerk()
Das Array, das das Netzwerk, d.h.
boolean
mouseDown(Event evt, int x, int y)
Pruefung auf klick auf Netzknoten
boolean
mouseMove(Event evt, int x, int y)
Mousebewegungen im NetzwerkCanvas abfangen
void
paint(Graphics g)
Netzwerkuebersicht zeichnen
void
reset()
Zuruecksetzten der der Animation zugrundeliegenden Datenstrukturen
void
reset_flussfeld()
Zuruecksetzen der Flussfelder
int
routing(int t, Datenpaket hilf)
Hier ist der eigentliche HotPotato-Algorithmus implementiert : Es wird die Queue mit den wenigsten Datenpaketen gesucht und zurueckgegeben.
void
run()
Run-Methode des Threads.
void
setqueue(int von, int zu)
Knotenverbindungen setzten
void
setze_effels()
Das Demonstrationsnetzwerk von Prof.
void
setze_queueraten(int zahl, int wert)
Setzt die Ausstossrate der Queue zahl des aktuellen Netzknotens auf den Wert wert
void
setze_sflag()
Startknoten-Button wurde gedrueckt
void
setze_standard()
Das Standard-Demonstrationsnetzwerk wird zum aktuellen Netzwerk gemacht
void
setze_zflag()
Zielknoten-Button wurde gedrueckt
void
start()
Thread starten
void
stop()
Thread stoppen
void
zeichne_horizontale_linie(int x_von, int y_von, int y_bis, int dicke, Graphics g)
horizontale Linie zeichnen
void
zeichne_knoten(Graphics g, boolean aktualisieren)
Zeichnen des aktuellen Netzknotens
void
zeichne_netzknoten(Graphics g)
Netzknoten zeichnen
void
zeichne_rahmen(int x, int y, int width, int height, int dicke, Graphics g)
Rahmen zeichnen
void
zeichne_rechner(Netzknoten aktuell, Graphics g)
Rechner zeichnen
void
zeichne_verbindungen(Graphics g)
Verbindungslinien in der Netzwerkuebersicht zeichnen
void
zeichne_vertikale_linie(int x_von, int x_bis, int y_von, int dicke, Graphics g)
vertikale Linie zeichnen

Field Details

Netzwerk

private Netzknoten[] Netzwerk

aktuelle_id

private int aktuelle_id

anim_delay

public int anim_delay

anim_dicke

private int anim_dicke

anim_flussfeld

private int[] anim_flussfeld

anim_oben

private Point anim_oben

anim_oben_laeuft

private boolean anim_oben_laeuft

anim_punkt

private Point anim_punkt

animation_ende

private boolean animation_ende

animation_laeuft

private boolean animation_laeuft
Variablen fuer die Animation

anzahl_aus

private static int anzahl_aus

anzahl_ein

private static int anzahl_ein

ausstoss

(package private)  int ausstoss

beruehrt

private boolean beruehrt

breite

private static final int breite
Field Value:
50

d

private Dimension d

effels

private boolean effels

fenster

private Oberflaeche fenster

flussfeld

private int[] flussfeld

flussfeldgroesse

private int flussfeldgroesse

hoehe

private static final int hoehe
Field Value:
50

imagefeld

private Image[] imagefeld

lo

private Point lo

mainapplet

private HotPotato mainapplet

maxComponentHeight

private int maxComponentHeight

maxComponentWidth

private int maxComponentWidth

maxknoten

private static final int maxknoten
Field Value:
15

netzknotenzahl

private int netzknotenzahl

netzwerkthread

(package private)  Thread netzwerkthread

qb

private static final int qb
Field Value:
30

qh

private static final int qh
Field Value:
30

repaint_laeuft

private boolean repaint_laeuft

ru

private Point ru

sflag

private boolean sflag

startknoten

private int startknoten

threadgroup

private ThreadGroup threadgroup

tracker

(package private)  MediaTracker tracker

zflag

private boolean zflag

zielknoten

private int zielknoten

Constructor Details

Netzwerkdarstellung

public Netzwerkdarstellung(Oberflaeche fen,
                           HotPotato m)
Konstruktor

Method Details

addknoten

public void addknoten(String art)
neuen Knoten einfuegen

aktualisiere_netzknoten

public void aktualisiere_netzknoten()
Netzknoten aktualisieren

anim_ausgang

public void anim_ausgang(int knotenzahl,
                         int queuezahl)
Ausgangsanimation bei Netzknoten Netzwerk[netzknotenzahl] und der Queue queuezahl

anim_eingang

public void anim_eingang(int knotenzahl,
                         int queuezahl)
Animation Eingang Netzknoten Netzwerk[t] in Queue queuezahl

berechnungen

public void berechnungen()
Berechnen der Positionen der Netzknoten in der Netzwerkuebersicht

demonetz

public void demonetz()
Standard-Demonstrationsnetzwerk

effelsberg_demonetz

public void effelsberg_demonetz()
Demonstrationsnetzwerk von Prof. Effelsberg

find

public int find(int x,
                int y)
Pruefen, ob Mauszeiger ueber einem Netzknoten

gib_akt_knoten

public Netzknoten gib_akt_knoten()
Gibt aktuellen Netzknoten zurueck

gib_aktuelle_id

public int gib_aktuelle_id()
Gibt die ID des aktuellen Netzknotens zurueck

gib_anim_laeuft

public boolean gib_anim_laeuft()
Gibt den Zustand der Animation zureuck

gib_ausstoss

public int gib_ausstoss()
gibt die Zahl der Datenpakete die pro Durchlauf der ``forever´´-Schleife der ``run´´-Methode im Startknoten erzeugt werden

gib_netzknotenzahl

public int gib_netzknotenzahl()
Gibt die Anzahl an Knoten im dargestellten Netzwerk zurueck

gib_queueraten

public int gib_queueraten(int temp)
Gibt die Ausstossraten der Queues des aktuellen Netzknotens zurueck

loesche_datenpaket

public void loesche_datenpaket()
Wird die Anmation durch den Stop-Button beendet, bleiben die zuletzt gezeichnten Datenpakete stehen, deshalb muessen sie nachtraeglich geloescht werden

loesche_netzwerk

public void loesche_netzwerk()
Das Array, das das Netzwerk, d.h. die Netzknoten aufnimmt, wird zurueckgesetzt

mouseDown

public boolean mouseDown(Event evt,
                         int x,
                         int y)
Pruefung auf klick auf Netzknoten

mouseMove

public boolean mouseMove(Event evt,
                         int x,
                         int y)
Mousebewegungen im NetzwerkCanvas abfangen

paint

public void paint(Graphics g)
Netzwerkuebersicht zeichnen

reset

public void reset()
Zuruecksetzten der der Animation zugrundeliegenden Datenstrukturen

reset_flussfeld

public void reset_flussfeld()
Zuruecksetzen der Flussfelder

routing

public int routing(int t,
                   Datenpaket hilf)
Hier ist der eigentliche HotPotato-Algorithmus implementiert : Es wird die Queue mit den wenigsten Datenpaketen gesucht und zurueckgegeben. Wichtig : Einzige Bedingung ist das das Datenpaket nicht direkt wiede zurueck- geschickt wird

run

public void run()
Run-Methode des Threads. Hier werden alle Aktivitaeten koordiniert.

setqueue

public void setqueue(int von,
                     int zu)
Knotenverbindungen setzten

setze_effels

public void setze_effels()
Das Demonstrationsnetzwerk von Prof. Effelsberg wird zum aktuellen Netzwerk gemacht

setze_queueraten

public void setze_queueraten(int zahl,
                             int wert)
Setzt die Ausstossrate der Queue zahl des aktuellen Netzknotens auf den Wert wert

setze_sflag

public void setze_sflag()
Startknoten-Button wurde gedrueckt

setze_standard

public void setze_standard()
Das Standard-Demonstrationsnetzwerk wird zum aktuellen Netzwerk gemacht

setze_zflag

public void setze_zflag()
Zielknoten-Button wurde gedrueckt

start

public void start()
Thread starten

stop

public void stop()
Thread stoppen

zeichne_horizontale_linie

public void zeichne_horizontale_linie(int x_von,
                                      int y_von,
                                      int y_bis,
                                      int dicke,
                                      Graphics g)
horizontale Linie zeichnen

zeichne_knoten

public void zeichne_knoten(Graphics g,
                           boolean aktualisieren)
Zeichnen des aktuellen Netzknotens

zeichne_netzknoten

public void zeichne_netzknoten(Graphics g)
Netzknoten zeichnen

zeichne_rahmen

public void zeichne_rahmen(int x,
                           int y,
                           int width,
                           int height,
                           int dicke,
                           Graphics g)
Rahmen zeichnen

zeichne_rechner

public void zeichne_rechner(Netzknoten aktuell,
                            Graphics g)
Rechner zeichnen

zeichne_verbindungen

public void zeichne_verbindungen(Graphics g)
Verbindungslinien in der Netzwerkuebersicht zeichnen

zeichne_vertikale_linie

public void zeichne_vertikale_linie(int x_von,
                                    int x_bis,
                                    int y_von,
                                    int dicke,
                                    Graphics g)
vertikale Linie zeichnen