de.bsvrz.ars.ars.mgmt.tasks
Class Task

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.ars.ars.mgmt.tasks.Task
All Implemented Interfaces:
SuspendableTask, java.lang.Runnable
Direct Known Subclasses:
ArchivConfig, ArchiveTask, MultiTask, MultiTaskManager, RestorePersDirTsk, SimulationManager, SingleTask

public abstract class Task
extends java.lang.Thread
implements SuspendableTask

Abstrakte Basisklasse fuer die abstrakten Task-Basisklassen SingleTask und MultiTask.

Version:
$Revision: 1.1 $ / $Date: 2008/01/22 16:39:56 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Thomas Schaefer, Alexander Schmidt

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
protected  ArchiveManager archMgr
          Zentrale Archiv-Verwaltung.
protected  DataIdentTree didTree
           
protected static int INDEX_MEMORY_SIZE
          Groesse des Byte-Arrays fuer temporaeren Speicher beim Abfragen der Indexe.
protected  boolean isTerminated
          Zeigt an ob der Task beendet wurde.
protected  Debug logger
           
protected  PersistenceManager persMgr
          PersistenceManager fuer den Zugriff auf die Daten des Archivsystems
protected  RingOfDeathListener ringOfDeathListener
          Dieses Objekt wird benachrichtigt, wenn die Hauptschleife verlassen wurde
protected  java.util.List<TaskStepListener> taskStepListeners
          Alle Objekte in dieser Liste werden benachrichtigt, wenn ein Zyklus der Hauptschleife durchlaufen wurde.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
protected Task(ArchiveManager archiveMgr, RingOfDeathListener rodl)
           
 
Method Summary
 void addTaskStepListener(TaskStepListener tsl)
          Zu Testzwecken kann hiermit ein Listener eingefuegt werden, der am Ende eines jedem Schleifendurchlaufs aufgerufen wird.
 ArchiveManager getArchMgr()
           
 boolean isTaskTerminated()
          Zeigt an, ob der Task beendet werden soll.
 void removeTaskStepListener(TaskStepListener tsl)
          Entfernt den Listener.
 void suspendTaskIfNecessary()
          Hält den Task an, falls sich das Archivsystem in einem kritischen Zustand befindet.
 void terminateTask()
          Terminiert den Task, indem die Thread.run()-Methode unterbrochen wird, sofern sie im Wartezustand ist und nicht gerade einen Auftrag bearbeitet.
 
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, run, 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

INDEX_MEMORY_SIZE

protected static final int INDEX_MEMORY_SIZE
Groesse des Byte-Arrays fuer temporaeren Speicher beim Abfragen der Indexe.

See Also:
Constant Field Values

logger

protected Debug logger

isTerminated

protected boolean isTerminated
Zeigt an ob der Task beendet wurde. Mit dieser Hilfsvariable gilt stets

task.terminateTask(); task.isTaskTerminated()==true;

was bei

task.interrupt(); task.isInterrupted()==true;

nicht der Fall ist.


taskStepListeners

protected java.util.List<TaskStepListener> taskStepListeners
Alle Objekte in dieser Liste werden benachrichtigt, wenn ein Zyklus der Hauptschleife durchlaufen wurde.


archMgr

protected ArchiveManager archMgr
Zentrale Archiv-Verwaltung.


didTree

protected DataIdentTree didTree

persMgr

protected PersistenceManager persMgr
PersistenceManager fuer den Zugriff auf die Daten des Archivsystems


ringOfDeathListener

protected RingOfDeathListener ringOfDeathListener
Dieses Objekt wird benachrichtigt, wenn die Hauptschleife verlassen wurde

Constructor Detail

Task

protected Task(ArchiveManager archiveMgr,
               RingOfDeathListener rodl)
Method Detail

addTaskStepListener

public void addTaskStepListener(TaskStepListener tsl)
Zu Testzwecken kann hiermit ein Listener eingefuegt werden, der am Ende eines jedem Schleifendurchlaufs aufgerufen wird. Auf diese Weise sind z.B. die Tasks einfacher zu testen. Wenn ein Task abgebrochen wird, kann nicht garantiert werden, dass fuer die letzte Schleife der TaskListener aufgerufen wird.

Parameters:
tsl - Callback-Interface

removeTaskStepListener

public void removeTaskStepListener(TaskStepListener tsl)
Entfernt den Listener.

Parameters:
tsl - Callback-Interface

terminateTask

public void terminateTask()
Terminiert den Task, indem die Thread.run()-Methode unterbrochen wird, sofern sie im Wartezustand ist und nicht gerade einen Auftrag bearbeitet. Andernfalls wird der Task vor dem naechsten Zyklus beendet.


isTaskTerminated

public boolean isTaskTerminated()
Description copied from interface: SuspendableTask
Zeigt an, ob der Task beendet werden soll.

Specified by:
isTaskTerminated in interface SuspendableTask
Returns:
true falls der Task beendet werden soll.

getArchMgr

public ArchiveManager getArchMgr()

suspendTaskIfNecessary

public void suspendTaskIfNecessary()
Hält den Task an, falls sich das Archivsystem in einem kritischen Zustand befindet. Wird das Archivsystem beendet, wird der Task fortgesetzt, so dass er seine Aufgabe noch vollständig erfüllen kann. isTerminated liefert anschließend true zurück.

Specified by:
suspendTaskIfNecessary in interface SuspendableTask


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