Class ThreadElement
- java.lang.Object
-
- java.lang.Thread
-
- de.bsvrz.pua.prot.manager.taskmanager.ThreadElement
-
- All Implemented Interfaces:
java.lang.Runnable
public class ThreadElement extends java.lang.ThreadThread der einen Auftrag der in den Bereich der Protokollerstellung fällt ausführt. Mögliche Aufträge sind:
- Protokoll erstellen
- Protokoll abbrechen
- Status der Protokollerstellung anfordern
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classThreadElement.Operation
-
Constructor Summary
Constructors Constructor Description ThreadElement(ThreadPool creator, DataManagerInterface dataManager, long maxDelay, int timeout)Initialisierung des Objekts
-
Method Summary
Modifier and Type Method Description voidabort()Bricht die Protokollerstellung ab.voidactivateTask(AbstractTask task)voidflowControl(long numData)ThreadPoolgetCreator()longgetJobId()Gibt die eindeutige ID dieses Auftrags zurück.longgetMaxDelay()ThreadElement.OperationgetOperation()Gibt die aktuell durchgeführte Aktion zurücklonggetProtocolId()Liefert die Protokoll-Id.protected PuaSendergetPuaSender(AbstractTask task)longgetRequestId()de.bsvrz.sys.funclib.losb.datk.SerializerUtilgetSerializer()bytegetStatus()Liefert den Status des AuftragsintgetTimeout()booleanisRunning()Zeigt an, ob der Thread bereits läuft, d.h. ob er sich bereits in dierunMethode befindet.voidkill()Bricht den Auftrag ab und beendet den Thread vollständig.voidpauseProcessing()Flußsteuerung: Versand des Protokolls anhalten.voidresumeProcessing()Flußsteuerung: Versand des Protokolls fortsetzen.voidrun()Startet den Thread und versetzt ihn sofort in einen Schlafzustand, aus dem er erst wieder geweckt wird, wenn eine Anfrage eingeht.voidsendError(de.bsvrz.sys.funclib.losb.exceptions.FailureException exception)Sendet eine Fehlermeldung an den Auftraggeber und gibt eine Debug-Nachricht aus.voidsetRunning(boolean running)voidstopProtocolTransmission()JobInProgresstoJobInProgress()Erstellt ein JobInProgress-Objekt zur Übertragung des Auftragsstatus an den Client-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
Constructor Detail
-
ThreadElement
public ThreadElement(ThreadPool creator, DataManagerInterface dataManager, long maxDelay, int timeout) throws de.bsvrz.sys.funclib.losb.exceptions.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 SkriptsmaxDelay- Maximale Zeitdauer in ms, für die die Protokollerstellung angehalten werden kann.timeout- Timeout- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException- Fehler bei der Initialisierung.
-
-
Method Detail
-
getSerializer
public de.bsvrz.sys.funclib.losb.datk.SerializerUtil getSerializer()
-
getCreator
public ThreadPool getCreator()
-
getMaxDelay
public long getMaxDelay()
-
getTimeout
public int getTimeout()
-
isRunning
public boolean isRunning()
Zeigt an, ob der Thread bereits läuft, d.h. ob er sich bereits in dierunMethode befindet.- Returns:
- Thread läuft?
-
setRunning
public void setRunning(boolean running)
-
getStatus
public byte getStatus()
Liefert den Status des Auftrags- Returns:
- Prozentualer Fertigstellungsgrad des Auftrags oder
INVALID_STATUSfalls kein Auftrag anliegt.
-
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 MethodeThreadPool.finished(ThreadElement)auf. Wird das Protokoll gespeichert auf dem Datenträger gespeichert, wird es wieder gelöscht. Im Gegensatz zukill()steht der Thread danach weiterhin zur Verfügung.
-
stopProtocolTransmission
public void stopProtocolTransmission()
-
getPuaSender
protected PuaSender getPuaSender(AbstractTask task)
-
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:
runin interfacejava.lang.Runnable- Overrides:
runin classjava.lang.Thread
-
sendError
public void sendError(de.bsvrz.sys.funclib.losb.exceptions.FailureException exception)
Sendet eine Fehlermeldung an den Auftraggeber und gibt eine Debug-Nachricht aus.- Parameters:
exception- Fehlermeldung.
-
activateTask
public void activateTask(AbstractTask task) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException
-
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.
-
getJobId
public long getJobId()
Gibt die eindeutige ID dieses Auftrags zurück. Diese Id wird statt der Protokoll-ID verwendet, da je Protokoll u.U. mehrere Aufträge gleichzeitig ausgeführt werden können.- Returns:
- ID des Auftrags.
-
pauseProcessing
public void pauseProcessing()
Flußsteuerung: Versand des Protokolls anhalten.
-
resumeProcessing
public void resumeProcessing()
Flußsteuerung: Versand des Protokolls fortsetzen.
-
flowControl
public void flowControl(long numData)
-
getRequestId
public long getRequestId()
- Returns:
- Liefert die initiale Anfrage-Id.
-
getOperation
public ThreadElement.Operation getOperation()
Gibt die aktuell durchgeführte Aktion zurück- Returns:
- 1: Protokollerstellung. 2: Gespeichertes Protokoll senden. 3: Noch nicht abgerufenes Protokoll senden.
-
toJobInProgress
public JobInProgress toJobInProgress() throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
Erstellt ein JobInProgress-Objekt zur Übertragung des Auftragsstatus an den Client- Returns:
- JobInprogress
- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException- Exception
-
-