zisko.multicastor.program.model
Class MulticastSender

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

public class MulticastSender
extends MulticastThreadSuper
implements MulticastSenderInterface

Die MultiCastSender-Klasse kuemmert sich um das tatsuechliche Senden der Multicast- Objekte ueber das Netzwerk. Sie extended MulticastThreadSuper, ist also ein Runnable. Ein MultiCastSender hat eine Grundkonfiguration, die nicht mehr abgeuendert werden kann, wie zum Beispiel die gesetzten IPs. Soll diese Grundkonfiguration geuendert werden, muss eine neue Instanz der Klasse gebildet werden. Das Erleichtert die nuechtruegliche Analyse, Da das Objekt eindeutig einem "Test" zuordnungsbar ist.


Nested Class Summary
static class MulticastSender.sendingMethod
          Variablen fuer die verschiedenen Sendemethoden
 
Constructor Summary
MulticastSender(MulticastData mcBean, java.util.logging.Logger _logger)
          Einziger Konstruktor der Klasse (Sieht man vom Konstruktor der Superklasse ab).
 
Method Summary
 void endIt()
          Multicast Sender stoppen
 void run()
          hier geschieht das eigentliche Senden.
 void setActive(boolean active)
          Wird der Methode true uebergeben, meldet diese sich bei der Multicastgruppe an und startet zu senden.
 void setActive(boolean active, MulticastSender.sendingMethod _method)
          Siehe public void setActive(boolean active).
 void setMCtrl(MulticastController mc)
          Einen MulticastController setzten
 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

MulticastSender

public MulticastSender(MulticastData mcBean,
                       java.util.logging.Logger _logger)
Einziger Konstruktor der Klasse (Sieht man vom Konstruktor der Superklasse ab). Im Konstruktor wird die hostID gesetzt (entspricht dem hostnamen des Geruets), der MultiCastSocket initialisiert, das Network-Interface ueber das die Multicasts gesendet werden sollen gesetzt und das Datenpaket mit dem PacketBuilder erstellt.

Parameters:
mcBean - Das MulticastData-Object, dass alle fuer den Betrieb nuetigen Daten enthuelt.
_logger - Eine Queue, ueber den der Sender seine Ausgaben an den Controller weitergibt.
Method Detail

setMCtrl

public void setMCtrl(MulticastController mc)
Einen MulticastController setzten

Parameters:
mc - Instanz

setActive

public void setActive(boolean active)
Wird der Methode true uebergeben, meldet diese sich bei der Multicastgruppe an und startet zu senden. Wird der Methode false uebergeben, stoppt sie das senden der Multicasts und veranlasst damit auch das Abmelden von der Multicastgruppe.

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

setActive

public void setActive(boolean active,
                      MulticastSender.sendingMethod _method)
Siehe public void setActive(boolean active). Es luesst sich zusuetzlich die Art und Weise angeben, mit der gesendet wird (diese Mueglichkeit wird in der aktuellen Version nur auf Modulebene unterstuetzt und zielt auf spuetere Versionen des ByteTools und Testzwecke ab)

Parameters:
active - true=senden, false=nicht senden
_method - Art und Weise des Sendens

endIt

public void endIt()
Multicast Sender stoppen


run

public void run()
hier geschieht das eigentliche Senden. Beim Starten des Threads wird probiert, der Multicast-Gruppe beizutreten. Gelingt dies nicht, wird ein Fehler ausgegeben und das Senden wird garnicht erst gestartet. Gelingt das Beitreten, wird so lange gesendet, bis setActive(false) aufgerufen wird. Auf Modulebene kann bei setActive() festgelegt werden, auf welche Art und Weise gesendet wird. Im Tool wird in dieser Version ausschlieuelich PEAK verwendet.

Specified by:
run in interface java.lang.Runnable

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