de.bsvrz.ars.ars.mgmt.tasks
Class SingleTask

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.ars.ars.mgmt.tasks.Task
          extended by de.bsvrz.ars.ars.mgmt.tasks.SingleTask
All Implemented Interfaces:
SuspendableTask, Runnable
Direct Known Subclasses:
ArchiveSettingsTask, SingleClientSenderTask

public abstract class SingleTask
extends Task

SingleTask. Abstrakte Basisklasse fuer diejenigen Tasks, die nur einmal vorkommen und deswegen nicht von einem TaskMgr verwaltet sondern direkt durch die Eingabe-Warteschlange gesteuert werden.

Author:
beck et al. projects GmbH, Alexander Schmidt

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
private  RingBuffer<ResultData> inputDataQueue
           
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
SingleTask(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData)
          Erzeugt eine neue SingleTask.
 
Method Summary
 void run()
           
protected abstract  void work(ResultData resultData)
          Diese Methode ist zu ueberschreiben, um die konkrete Aufgabe der Task zu implementieren.
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, 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
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

inputDataQueue

private RingBuffer<ResultData> inputDataQueue
Constructor Detail

SingleTask

public SingleTask(ArchiveManager archiveMgr,
                  RingOfDeathListener rodl,
                  RingBuffer<ResultData> inputData)
Erzeugt eine neue SingleTask.

Parameters:
archiveMgr - Der Archiv-Manager.
rodl - Der Listener wird benachrichtigt beim Beenden der Task.
inputData - Eingangswarteschlange
Method Detail

run

public void run()
Specified by:
run in interface Runnable
Overrides:
run in class Thread
See Also:
Runnable.run()

work

protected abstract void work(ResultData resultData)
Diese Methode ist zu ueberschreiben, um die konkrete Aufgabe der Task zu implementieren. In der Methode soll keine weitere Warteschlangen-Synchronisation stattfinden.

Parameters:
resultData - Zu verarbeitender Datensatz aus der Eingangswarteschlange