de.bsvrz.pua.prot.manager.taskmanager
Class ThreadElement

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.pua.prot.manager.taskmanager.ThreadElement
All Implemented Interfaces:
java.lang.Runnable

public class ThreadElement
extends java.lang.Thread

Thread der einen Auftrag der in den Berecih der Protokollerstellung fällt ausführt. Mögliche Aufträge sind:
- Protokoll erstellen
- Protokoll abbrechen
- Status der Protokollerstellung anfordern

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:49 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Martin Hilgers

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
static byte INVALID_STATUS
          Status der Protokollerstellung nicht ermittelbar.
 boolean running
          Zeigt an, ob der Thread bereits läuft, d.h.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ThreadElement(ThreadPool creator, DataManagerInterface dataManager, long maxDelay)
          Initialisierung des Objekts
 
Method Summary
 void abort()
          Bricht die Protokollerstellung ab.
 void activateCreateProtocol(ClientDavInterface dav, SystemObject client, long requestId, ProcessingParameter pp, long protocolId)
          Startet die Protokollerstellung.
 void activateGetProtocol(ClientDavInterface dav, SystemObject client, long requestId, long protocolId)
          Startet das Senden eines bereits gespeicherten Protokolls.
 void activateGetUnreadProtocol(ClientDavInterface dav, SystemObject client, long requestId, long protocolId)
          Startet das Senden eines noch nicht abgerufenen Protokolls.
protected  ProcessingInformation evaluateScript()
          Evaluiert das Skript.
 long getProtocolId()
          Liefert die Protokoll-Id.
 long getRequestId()
           
 Sender getSender()
          Liefert den Sender, der die Daten für diesen Thread verchickt.
 byte getStatus()
          Liefert den Status der Protokollerstellung
 void kill()
          Bricht den Auftrag ab und beendet den Thread vollständig.
 void pauseProcessing()
          Flußsteuerung: Versand des Protokolls anhalten.
 void resumeProcessing()
          Flußsteuerung: Versand des Protokolls fortsetzen.
 void run()
          Startet den Thread und versetzt ihn sofort in einen Schlafzustand, aus dem er erst wieder geweckt wird, wenn eine Anfrage eingeht.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INVALID_STATUS

public static final byte INVALID_STATUS
Status der Protokollerstellung nicht ermittelbar.

See Also:
Constant Field Values

running

public boolean running
Zeigt an, ob der Thread bereits läuft, d.h. ob er sich bereits in die run Methode befindet.

Constructor Detail

ThreadElement

public ThreadElement(ThreadPool creator,
                     DataManagerInterface dataManager,
                     long maxDelay)
              throws FailureException
Initialisierung des Objekts

Parameters:
creator - Erzeuger des Threads. Wird benachrichtigt (@link ThreadPool#finished(ThreadElement)}), sobald Thread unbeschäftigt ist.
dataManager - Data Manager. Ermöglicht das Interpretieren des Skripts
maxDelay - Maximale Zeitdauer in ms, für die die Protokollerstellung angehalten werden kann.
Throws:
FailureException - Fehler bei der Initialisierung.
Method Detail

getStatus

public byte getStatus()
Liefert den Status der Protokollerstellung

Returns:
Prozentualer Fertigstellungsgrad der Protokollerstellung oder INVALID_STATUS falls kein Protokoll erstellt wird.

evaluateScript

protected ProcessingInformation evaluateScript()
                                        throws FailureException
Evaluiert das Skript. Dazu wird über das Submodul Daten Manager (DataManagerInterface) der Skriptinterpreter (Interpreter) verwendet.

Returns:
Informationen für die Datenaufbereitung
Throws:
FailureException - Fehler im Skript.

abort

public void abort()
Bricht die Protokollerstellung ab. Der Thread meldet dem creator, dass er wieder für neue Anfragen zur Verfügung steht. Dazu ruft er die Methode ThreadPool.finished(ThreadElement) auf. Wird das Protokoll gespeichert auf dem Datenträger gespeichert, wird es wieder gelöscht. Im Gegensatz zu kill() steht der Thread danach weiterhin zur Verfügung.


run

public void run()
Startet den Thread und versetzt ihn sofort in einen Schlafzustand, aus dem er erst wieder geweckt wird, wenn eine Anfrage eingeht.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

activateCreateProtocol

public void activateCreateProtocol(ClientDavInterface dav,
                                   SystemObject client,
                                   long requestId,
                                   ProcessingParameter pp,
                                   long protocolId)
                            throws FailureException
Startet die Protokollerstellung. Setzt die nötigen Parameter für die Datenaufbereitung und startet die Datenaufbereitung.

Parameters:
dav - Verbindung zum Datenverteiler
client - Auftraggeber
requestId - Anfrage-ID
pp - Auftragsparameter.
protocolId - Protokoll-Id
Throws:
FailureException - Fehler bei der Sendeanmeldung.

activateGetProtocol

public void activateGetProtocol(ClientDavInterface dav,
                                SystemObject client,
                                long requestId,
                                long protocolId)
                         throws FailureException
Startet das Senden eines bereits gespeicherten Protokolls.

Parameters:
dav - Verbindung zum Datenverteiler.
client - Auftraggeber.
requestId - Anfrage-ID
protocolId - Id des Protokolls, das gesendet werden soll.
Throws:
FailureException - Fehler bei der Sendeanmeldung.

activateGetUnreadProtocol

public void activateGetUnreadProtocol(ClientDavInterface dav,
                                      SystemObject client,
                                      long requestId,
                                      long protocolId)
                               throws FailureException
Startet das Senden eines noch nicht abgerufenen Protokolls.

Parameters:
dav - Verbindung zum Datenverteiler.
client - Auftraggeber.
requestId - Anfrage-ID
protocolId - Id des Protokolls, das gesendet werden soll.
Throws:
FailureException - Fehler bei der Sendeanmeldung.

kill

public void kill()
Bricht den Auftrag ab und beendet den Thread vollständig.


getProtocolId

public long getProtocolId()
Liefert die Protokoll-Id.

Returns:
Id des Protokolls, das erstellt wird.

getSender

public Sender getSender()
Liefert den Sender, der die Daten für diesen Thread verchickt.

Returns:
Senderobjekt. Ist nie null.

pauseProcessing

public void pauseProcessing()
Flußsteuerung: Versand des Protokolls anhalten.


resumeProcessing

public void resumeProcessing()
Flußsteuerung: Versand des Protokolls fortsetzen.


getRequestId

public long getRequestId()
Returns:
Liefert die initiale Anfrage-Id.


Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.