zisko.multicastor.program.model
Class MulticastMmrpSender

java.lang.Object
  extended by zisko.multicastor.program.interfaces.MulticastThreadSuper
      extended by zisko.multicastor.program.model.MulticastMmrpSender
All Implemented Interfaces:
java.lang.Runnable, MulticastSenderInterface

public class MulticastMmrpSender
extends MulticastThreadSuper
implements MulticastSenderInterface

Die MultiCastMmrpSender-Klasse kuemmert sich um das tatsaechliche Senden der Multicast-Objekte ueber das Netzwerk per MMRP Protokoll. Sie extendedMulticastThreadSuper, ist also ein Runnable. Ein MultiCastMmrpSender hat eine Grundkonfiguration, die nicht mehr abgeaendert werden kann, wie zum Beispiel die gesetzten MACs. Soll diese Grundkonfiguration geaendert werden, muss eine neue Instanz de Klasse gebildet werden. Das Erleichtert die nachtraegliche Analyse, Da das Objekt eindeutig einem "Test" zuordnungsbar ist.


Constructor Summary
MulticastMmrpSender(MulticastData multicastData, java.util.logging.Logger logger, MulticastController multiCtrl)
          Einziger Konstruktor der Klasse (Sieht man vom Konstruktor der Superklasse ab).
 
Method Summary
 void run()
          hier geschieht das eigentliche Senden.
 void setActive(boolean active)
          Wird der Methode true uebergeben, startet der Multicast zu senden.
 void update()
          Aktualisiert das MultiCastData-Objekt und resetet den internen Paket-Counter
 void updateMin()
          Aktualisiert das MultiCastData-Objekt.
 
Methods inherited from class zisko.multicastor.program.interfaces.MulticastThreadSuper
getMultiCastData, isStillRunning
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface zisko.multicastor.program.interfaces.MulticastSenderInterface
getMultiCastData
 

Constructor Detail

MulticastMmrpSender

public MulticastMmrpSender(MulticastData multicastData,
                           java.util.logging.Logger logger,
                           MulticastController multiCtrl)
                    throws java.io.IOException
Einziger Konstruktor der Klasse (Sieht man vom Konstruktor der Superklasse ab). Im Konstruktor wird die hostID gesetzt (entspricht dem hostnamen des Geraets), der MMRPSender initialisiert und das Datenpaket mit dem PacketBuilder erstellt.

Parameters:
multicastData - Das MulticastData-Object, dass alle fuer den Betrieb nuetigen Daten enthuelt.
logger - Eine Queue, ueber den der Sender seine Ausgaben an den Controller weitergibt.
multiCtrl - Eine Referenz auf den entsprechendenMulticastController damit MulticastStroeme ggf. richtig gestoppt werden kann
Throws:
java.io.IOException
Method Detail

setActive

public void setActive(boolean active)
Wird der Methode true uebergeben, startet der Multicast zu senden. Wird der Methode false uebergeben, stoppt sie das senden der Multicasts.

Specified by:
setActive in interface MulticastSenderInterface
Specified by:
setActive in class MulticastThreadSuper
Parameters:
active - boolean

update

public void update()
Aktualisiert das MultiCastData-Objekt und resetet den internen Paket-Counter

Specified by:
update in class MulticastThreadSuper

updateMin

public void updateMin()
Aktualisiert das MultiCastData-Objekt. Dieser Counter summiert die gemessene Paketrate, die mit der update()-Funktion ins MultiCastData-Objekt geschrieben wird. Diese Summe wird bei jedem Aufruf resetet.

Specified by:
updateMin in class MulticastThreadSuper

run

public void run()
hier geschieht das eigentliche Senden. Beim Starten des Threads wird probiert, denn Mmrp Pfad zu registrieren. Gelingt dies nicht, wird ein Fehler ausgegeben und das Senden wird garnicht erst gestartet. Gelingt das registrieren, wird so lange gesendet, bis setActive(false) aufgerufen wird.

Specified by:
run in interface java.lang.Runnable