de.bsvrz.ars.ars.mgmt.tasks
Class DeleteSimVarTask

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
              extended by de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
                  extended by de.bsvrz.ars.ars.mgmt.tasks.DeleteSimVarTask
All Implemented Interfaces:
SuspendableTask, ClientSenderInterface, Runnable

public class DeleteSimVarTask
extends SingleClientSenderTask

Task zum Loeschen von Simulationsdaten einer bestimmten Simulationsvariante. Der Task wird verwendet um von Clients und der Simulation SimulationAutomaton eingehende Löschaufträge zu verarbeiten. Die Daten werden sowohl von dem Filesystem entfernt und die betroffenen DataIdentNodes werden aus dem DIN-Tree genommen.

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
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
atgQuery, ddResponse, deserializer, queryAppObj, queryIdx, SENDCONTROL_TIMEOUT, serializerVersion, syncObj
 
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
 
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
 
Constructor Summary
DeleteSimVarTask(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData)
           
 
Method Summary
private  void deleteSimVarClient(ResultData resultData)
          Führt Löschauftrag durch, der von einem Client gestellt wurde.
private  void deleteSimVarSimulation(SimulationResultData srd)
          Führt Löschauftrag durch, der von einer Simulation gestellt wurde.
private  void executeDelete(short simVarToDelete)
          Löscht die Daten einer Simulationsvariante.
protected  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.SingleClientSenderTask
dataRequest, getObjectsFromDAV, init, isRequestSupported, parseArchiveDataSpec, sendErrorResponse, sendErrorResponse, sendSuccessResponse, sendSuccessResponse, subscribeSender, unsubscribeSender
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleTask
run
 
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
 

Constructor Detail

DeleteSimVarTask

public DeleteSimVarTask(ArchiveManager archiveMgr,
                        RingOfDeathListener rodl,
                        RingBuffer<ResultData> inputData)
                 throws ConfigurationException
Throws:
ConfigurationException
See Also:
SingleClientSenderTask.SingleClientSenderTask(ArchiveManager,RingOfDeathListener,RingBuffer)
Method Detail

work

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

Specified by:
work in class SingleTask
Parameters:
resultData - Zu verarbeitender Datensatz aus der Eingangswarteschlange
See Also:
SingleTask.work(ResultData)

deleteSimVarSimulation

private void deleteSimVarSimulation(SimulationResultData srd)
                             throws IOException,
                                    PersistenceException
Führt Löschauftrag durch, der von einer Simulation gestellt wurde.

Parameters:
srd - Auftragsparameter.
Throws:
PersistenceException
IOException

deleteSimVarClient

private void deleteSimVarClient(ResultData resultData)
                         throws IOException,
                                PersistenceException
Führt Löschauftrag durch, der von einem Client gestellt wurde.

Parameters:
resultData - Auftragsdaten
Throws:
PersistenceException
IOException

executeDelete

private void executeDelete(short simVarToDelete)
                    throws IOException,
                           PersistenceException
Löscht die Daten einer Simulationsvariante. Entfernt die betroffenen DataIdentNodes aus dem Baum.
Vorgehen: Es müssen alle Verzeichnisse durchlaufen werden, da es möglich ist, dass Verzeichnisse existieren, die nicht durch DataIdentNodes repräsentiert werden.

Parameters:
simVarToDelete - Simulationsvariante.
Throws:
IOException - Fehler beim Deserialisieren der Daten aus data.
PersistenceException - Fehler beim Löschen der Daten.