de.jsystems.tools.thread
Interface IExecuteObject

All Known Implementing Classes:
ExecuteObject

public interface IExecuteObject

Dieses Interface stellt die Schnittstelle dar zwischen dem ThreadManager und dem Objekt, das innerhalb eines Threads ausgeführt werden soll. Dabei sollten alle Methoden des Interfaces sinnvoll implementiert werden. Eine Beispielimplementierung ist die Klasse ExecuteObject.

Version:
1.0
Author:
Jens Homm

Field Summary
static int ENDLESS
          Legt fest, das die Methode execute endlos ausgeführt wird.
static int MESSAGE
          Legt fest, das die Methode execute immer dann ausgeführt wird, wenn eine Message an den Thread geschickt wurde.
static int MULTIPLE
          Legt fest, das die Methode execute so oft ausgeführt wird, wie die Methode getIntervallCount festlegt.
static int SINGLE
          Legt fest, das die Methode execute nur einmal ausgeführt wird.
 
Method Summary
 void addThreadListener(ThreadListener listener)
          Fügt einen neuen Listener der Liste hinzu.
 void execute()
          Diese Methode wird vom ThreadManager innerhalb eines Threads ausgeführt.
 Object getData()
          Gibt ein Objekt mit Daten zurück, die der Thread ermittelt hat.
 int getIntervallCount()
          Legt die Anzahl Aufrufe für die Methode execute fest.
 long getIntervallTime()
          Gibt die Zeit in ms zurück, die zwischen zwei Aufrufen der Methode execute vergehen soll.
 int getIntervallType()
          Legt fest, ob die Methode execute einmal, mehrmals oder endlos aufgerufen werden soll.
 String getName()
          Gibt den Namen zurück, den der Thread erhalten soll, während er dieses Objekt ausführt.
 boolean isMessageReady()
          Gibt TRUE zurück, wenn eine neue Message geliefert werden kann.
 void messageOccured(ThreadMessage message)
          Setzt ein Message-Object für das ExecuteObjekt.
 void messageReady()
          Wird aufgerufen, sobald die letzte eingetroffene Message bearbeitet wurde.
 void messageRetrieved(ThreadMessage message)
          Wird aufgerufen, sobald eine Message für das ExecuteObject eingetroffen ist.
 void notifyListeners(ThreadEvent event)
          Benachrichtigt alle Listener, die über das Ende der Execute-Methode informiert werden wollen.
 void removeThreadListener(ThreadListener listener)
          Löscht den übergebenen Listener aus der Liste.
 

Field Detail

SINGLE

public static final int SINGLE
Legt fest, das die Methode execute nur einmal ausgeführt wird.

See Also:
Constant Field Values

ENDLESS

public static final int ENDLESS
Legt fest, das die Methode execute endlos ausgeführt wird.

See Also:
Constant Field Values

MULTIPLE

public static final int MULTIPLE
Legt fest, das die Methode execute so oft ausgeführt wird, wie die Methode getIntervallCount festlegt.

See Also:
Constant Field Values

MESSAGE

public static final int MESSAGE
Legt fest, das die Methode execute immer dann ausgeführt wird, wenn eine Message an den Thread geschickt wurde.

See Also:
Constant Field Values
Method Detail

execute

public void execute()
             throws Exception
Diese Methode wird vom ThreadManager innerhalb eines Threads ausgeführt. Innerhalb dieser Methode dürfen keine Endlosschleifen programmiert werden, da der ThreadManager den Thread sonst nicht mehr korrekt anhalten kann. Falls in der Methode eine Exception auftritt, die innerhalb der Methode nicht gehandelt werden kann, so braucht sie nicht abgefangen zu werden. Da die Methode jede Art von Exception werfen kann, wird in einem solchen Fall der ThreadManager die Bearbeitung der Methode beenden und die registrierten Listener benachrichtigen, das eine Exception aufgetreten ist. Die aufgetretene Exception wird dabei im Eventobjekt gespeichert.

Throws:
Exception - fuer alle Exceptions, die nicht innerhalb der Methode gehandelt werden koennen.

getName

public String getName()
Gibt den Namen zurück, den der Thread erhalten soll, während er dieses Objekt ausführt. Unter diesem Namen können dem Thread(genauer: Dem ExecuteObject, das gerade von einem Thread ausgeführt wird) Nachrichten geschickt werden. Diese Methode muss implementiert werden, da sonst der Thread nicht korrekt angesprochen werden kann.


getData

public Object getData()
Gibt ein Objekt mit Daten zurück, die der Thread ermittelt hat.


messageOccured

public void messageOccured(ThreadMessage message)
Setzt ein Message-Object für das ExecuteObjekt.


messageRetrieved

public void messageRetrieved(ThreadMessage message)
Wird aufgerufen, sobald eine Message für das ExecuteObject eingetroffen ist. Sobald die Message abgearbeitet wurde, muß die Methode messageReady aufgerufen werden, damit ggf. die nächste anstehende Message geliefert werden kann.


messageReady

public void messageReady()
Wird aufgerufen, sobald die letzte eingetroffene Message bearbeitet wurde. Erst dann kann eine neue Message geliefert werden.


isMessageReady

public boolean isMessageReady()
Gibt TRUE zurück, wenn eine neue Message geliefert werden kann.


getIntervallTime

public long getIntervallTime()
Gibt die Zeit in ms zurück, die zwischen zwei Aufrufen der Methode execute vergehen soll. Werte kleiner als 2 ms werden als 2 ms interpretiert. Der Rückgabewert der Methode wird nur bei den Intervalltypen MULTIPLE und ENDLESS berücksichtigt.


getIntervallType

public int getIntervallType()
Legt fest, ob die Methode execute einmal, mehrmals oder endlos aufgerufen werden soll.


getIntervallCount

public int getIntervallCount()
Legt die Anzahl Aufrufe für die Methode execute fest. Dieser Wert wird nur berücksichtigt, wenn der IntervallType auf MULTIPLE steht.


notifyListeners

public void notifyListeners(ThreadEvent event)
Benachrichtigt alle Listener, die über das Ende der Execute-Methode informiert werden wollen.


addThreadListener

public void addThreadListener(ThreadListener listener)
Fügt einen neuen Listener der Liste hinzu.


removeThreadListener

public void removeThreadListener(ThreadListener listener)
Löscht den übergebenen Listener aus der Liste. Falls der Listener mehrmals registriert wurde, so werden alle Registrierungen gelöscht.