zisko.multicastor.program.controller
Class MulticastController

java.lang.Object
  extended by zisko.multicastor.program.controller.MulticastController

public class MulticastController
extends java.lang.Object

Der MulticastController verwaltet Multicasts und abstrahiert das Speichern und Laden von Konfigurationsdateien von der View.


Constructor Summary
MulticastController(ViewController viewController, java.util.logging.Logger logger)
          Erzeugt einen MulticastController.
MulticastController(ViewController viewController, java.util.logging.Logger logger, int pPrintTableIntervall)
          Erzeugt einen MulticastController.
 
Method Summary
 void addMC(MulticastData m)
          Fuegt das uebergebene MulticastData-Objekt hinzu, erzeugt entsprechenden Thread und startet diesen falls notwendig.
 void changeMC(MulticastData m)
          Diese Methode muss aufgerufen werden, wenn sich Einstellungen des Multicasts aendern.
 void deleteMC(MulticastData m)
          Stoppt den zugehoerigen Thread und loescht alle Referenzen auf diesen, sowie das MulticastData-Objekt.
 void deleteMC(java.util.Vector<MulticastData> m)
          Entfernt alle Multicasts im Vektor.
 void destroy()
          Stops all Multicasts Threads and removes them from corresponding vectors.
 java.util.Vector<java.lang.String> getLastConfigs()
          Gibt einen Vektor mit den drei zuletzt geoeffneten Konfigurationsdateien zurueck.
 MulticastData getMC(int index, MulticastData.Typ multicastDataTyp)
          Gibt das MulticastData-Objekt an der Stelle im Vektor zurueck.
 java.util.Vector<MulticastData> getMCs(MulticastData.Typ m)
          Gibt den Vektor mit MulticastData-Objekten in dem alle Objekte des Typs gespeichert sind.
 int getPPSSender(MulticastData.Typ typ)
          Adds up the measuredPacketRate from MulticastSenders
 XMLParserInterface getXml_parser()
          Getter of XmlParser
 void loadConfigWithoutGUI(java.lang.String path)
          Laedt die angegebene Konfigurationsdatei.
 void loadDefaultMulticastConfig()
           
 void loadGUIConfig(java.lang.String path, boolean useDefaultXML)
          Laedt die GUI Konfigurationsdatei
 void loadMulticastConfig(java.lang.String path, boolean useDefaultXML)
          Laedt eine Konfigurationsdatei und fuegt markierte Multicasts hinzu.
 void saveGUIConfig(java.lang.String path, GUIData data)
          Speichert eine Konfigurationsdatei.
 void saveMulticastConfig(java.lang.String path, java.util.Vector<MulticastData> v)
          Speichert eine Konfigurationsdatei.
 void setPrintTableTime(int printTableTime)
          setzt das Zeitintervall fuer die Ausgabe der Tabelle auf der Konsole
 void startMC(MulticastData m)
          Startet den Multicast und gibt eine Fehlermeldung aus, wenn dies nicht moeglich ist.
 void startMC(java.util.Vector<MulticastData> m)
          Startet alle Multicasts aus dem uebergebenen Vektor.
 void stopMC(MulticastData m)
          Stoppt den uebergebenen Multicast.
 void stopMC(java.util.Vector<MulticastData> m)
          Stoppt alle Multicast im uebergebenen Vektor.
 void updateGUIData(GUIData data)
          Speichert die Standardkonfigurationsdatei.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MulticastController

public MulticastController(ViewController viewController,
                           java.util.logging.Logger logger)
Erzeugt einen MulticastController.

Parameters:
viewController - Ist dieses Objekt nicht null werden darueber MessageBoxen mit Status- oder Fehlermeldungen dem Nutzer angezeigt.
logger - Der Logger darf nicht null sein. Er wird benoetigt um Programmereignisse und regelmaessig ermittelte Durchschnittswerte zu loggen. Wird null uebergeben wird dies in den Systemoutput geschrieben.

MulticastController

public MulticastController(ViewController viewController,
                           java.util.logging.Logger logger,
                           int pPrintTableIntervall)
Erzeugt einen MulticastController.

Parameters:
viewController - Ist dieses Objekt nicht null werden darueber MessageBoxen mit Status- oder Fehlermeldungen dem Nutzer angezeigt.
logger - Der Logger darf nicht null sein. Er wird benoetigt um Programmereignisse und regelmaessig ermittelte Durchschnittswerte zu loggen. Wird null uebergeben wird dies in den Systemoutput geschrieben.
pPrintTableIntervall - die intervall zeit fuer den konsolen tabellen output
Method Detail

addMC

public void addMC(MulticastData m)
Fuegt das uebergebene MulticastData-Objekt hinzu, erzeugt entsprechenden Thread und startet diesen falls notwendig.

Parameters:
m - MulticastData-Objekt das hinzugefuegt werden soll.

changeMC

public void changeMC(MulticastData m)
Diese Methode muss aufgerufen werden, wenn sich Einstellungen des Multicasts aendern. Zum Beispeil die GroupIP. Hier wird der vorhandene Multicast geloescht und anschlieueend der Multicast neu erzeugt.

Parameters:
m - Refernez auf das Datenobjekt, welches veraendert wurde.

deleteMC

public void deleteMC(MulticastData m)
Stoppt den zugehoerigen Thread und loescht alle Referenzen auf diesen, sowie das MulticastData-Objekt.

Parameters:
m - Data object to delete.

deleteMC

public void deleteMC(java.util.Vector<MulticastData> m)
Entfernt alle Multicasts im Vektor.

Parameters:
m - Vector mit zu entfernenden Multicasts.

startMC

public void startMC(MulticastData m)
Startet den Multicast und gibt eine Fehlermeldung aus, wenn dies nicht moeglich ist.

Parameters:
m - MulticastData-Objekt des zu startenden Multicasts.

startMC

public void startMC(java.util.Vector<MulticastData> m)
Startet alle Multicasts aus dem uebergebenen Vektor.

Parameters:
m - Vektor mit MulticastData-Objekten.

stopMC

public void stopMC(MulticastData m)
Stoppt den uebergebenen Multicast. Der Thread wird nicht direkt gestoppt sondern laeuft von selber aus. Es wird gewartet bis der Thread sich gestoppt hat oder eine Fehlermeldung ausgegeben falls eine Interruption auftrit. Fehler oder auch das erfolgreiche Stoppen werden an die MesseageQueue angehaengt.

Parameters:
m - MulticastData-Objekt

stopMC

public void stopMC(java.util.Vector<MulticastData> m)
Stoppt alle Multicast im uebergebenen Vektor.

Parameters:
m - MulticastData-Objekt

getLastConfigs

public java.util.Vector<java.lang.String> getLastConfigs()
Gibt einen Vektor mit den drei zuletzt geoeffneten Konfigurationsdateien zurueck.


saveGUIConfig

public void saveGUIConfig(java.lang.String path,
                          GUIData data)
Speichert eine Konfigurationsdatei.

Parameters:
path - Pfad zur GUI Konfigurationsdatei.
data - Alle zu speichernden GUI Configs.

saveMulticastConfig

public void saveMulticastConfig(java.lang.String path,
                                java.util.Vector<MulticastData> v)
Speichert eine Konfigurationsdatei.

Parameters:
path - Pfad zur Konfigurationsdatei.
v - Alle zu speichernden Multicasts.

updateGUIData

public void updateGUIData(GUIData data)
Speichert die Standardkonfigurationsdatei.


loadDefaultMulticastConfig

public void loadDefaultMulticastConfig()

loadGUIConfig

public void loadGUIConfig(java.lang.String path,
                          boolean useDefaultXML)
Laedt die GUI Konfigurationsdatei

Parameters:
path - Pfad zur Konfigurationsdatei, die geladen werden soll.
useDefaultXML - Wenn hier true gesetzt ist, wird der Standardpfad genommen und MCD + UID + ULD geladen.

loadMulticastConfig

public void loadMulticastConfig(java.lang.String path,
                                boolean useDefaultXML)
Laedt eine Konfigurationsdatei und fuegt markierte Multicasts hinzu.

Parameters:
path - Pfad zur Konfigurationsdatei, die geladen werden soll.
useDefaultXML - Wenn hier true gesetzt ist, wird der Standardpfad genommen und MCD + UID + ULD geladen.

loadConfigWithoutGUI

public void loadConfigWithoutGUI(java.lang.String path)
                          throws java.io.FileNotFoundException,
                                 org.xml.sax.SAXException,
                                 java.io.IOException,
                                 WrongConfigurationException
Laedt die angegebene Konfigurationsdatei. Fehlermeldungen werden geworfen. Diese Funktion sollte nur aus der Main aufgerufen werden. Fehlermeldungen werden geworfen um versehentlichen Nutzen in der GUI zu verhindern.

Parameters:
path - Pfad zur Konfigurationsdatei
Throws:
java.io.FileNotFoundException - Die Datei wurde nicht gefunden.
org.xml.sax.SAXException - Beim Parsen der Datei ist ein Fehler aufgetreten.
java.io.IOException - Ein anderer Inputfehler ist aufgetreten.
WrongConfigurationException

getPPSSender

public int getPPSSender(MulticastData.Typ typ)
Adds up the measuredPacketRate from MulticastSenders

Parameters:
typ - Specifies whether L2_SENDER or L3_SENDER is returned.
Returns:
Sum of all sent packets. Returns 0 if typ is invalid.

destroy

public void destroy()
Stops all Multicasts Threads and removes them from corresponding vectors.


getMC

public MulticastData getMC(int index,
                           MulticastData.Typ multicastDataTyp)
Gibt das MulticastData-Objekt an der Stelle im Vektor zurueck.

Parameters:
index - Index des MulticastData-Objekts
multicastDataTyp - Der MulticastDatentyp um den entsprechenden Vektor zu bestimmt.
Returns:
Das MulticastData-Objekt an der entsprechenden Stelle im Vektor. Gibt null zurueck, wenn das Objekt nicht existiert.

getMCs

public java.util.Vector<MulticastData> getMCs(MulticastData.Typ m)
Gibt den Vektor mit MulticastData-Objekten in dem alle Objekte des Typs gespeichert sind.

Parameters:
m - Gibt den Typ der MulticastData-Objekte an.
Returns:
Vektor mit MulticastData-Objekten des angegebenen Typs. Ist der Typ UNDEFIENED wird null zurueckgegeben.

setPrintTableTime

public void setPrintTableTime(int printTableTime)
setzt das Zeitintervall fuer die Ausgabe der Tabelle auf der Konsole

Parameters:
printTableTime - Zeitintervall in milliseconds

getXml_parser

public XMLParserInterface getXml_parser()
Getter of XmlParser

Returns:
the Xml Parser