Class DataManager
- java.lang.Object
-
- java.lang.Thread
-
- de.bsvrz.pua.prot.manager.datamanager.DataManager
-
- All Implemented Interfaces:
DataManagerInterface
,java.lang.Runnable
public class DataManager extends java.lang.Thread implements DataManagerInterface
Submodul Daten Manager.
1. Übernimmt die Verwaltung von Dateisystem-Operationen:
- Schreiben von Protokollen
- Herausfinden, ob eine bestimmte Protokoll-Id bereits vergeben wurde
- Lesen und Schreiben von Skriptquelltexten
2. Zugriff auf die Konfiguration zur Verwaltung von Skript-Quelltexten
3. Zugriff auf den Skript-Interpreter
Geht eine Anfrage über die Methoden
addProtocolRequest(ResultData[])
oderaddScriptRequest(ResultData[])
ein, so wird diese Anfrage in einem Ringpuffer abgelegt. Ist der Thread unbeschäftigt, werden sie der Reihe nach (FIFO) abgearbeitet.
-
-
Constructor Summary
Constructors Constructor Description DataManager(de.bsvrz.dav.daf.main.ClientDavInterface dav, java.lang.String path, int quota, boolean prettyPrinter)
Erzeugen des Data Managers.
-
Method Summary
Modifier and Type Method Description void
addProtocolRequest(de.bsvrz.dav.daf.main.ResultData[] resultData)
Übergeben einer Protokoll-bezogenen Anfrage.void
addScriptRequest(de.bsvrz.dav.daf.main.ResultData[] resultData)
Übergeben einer Skript-bezogenen Anfrage.void
addScriptRequest(ScriptRequest request)
Übergeben einer Skript-bezogenen AnfrageProtocolOutputStream
createProtocolStream(long protocolId, ProcessingParameter pp)
Erzeugt einen Ausgabestream für ein Protokoll.void
deleteProtocol(long protocolId)
Löscht ein gespeichertes Protokoll.java.lang.String
getAbsolutFileNameMeta(de.bsvrz.dav.daf.main.config.SystemObject script)
Liefert Pfad und Dateiname der Metainformationjava.lang.String
getAbsolutFileNameSource(de.bsvrz.dav.daf.main.config.SystemObject script)
Liefert Pfad und Dateiname des Skriptquelltextesjava.lang.String
getFileNameMeta(de.bsvrz.dav.daf.main.config.SystemObject script)
Liefert den Dateinamen der Metainformationen.java.lang.String
getFileNameSource(de.bsvrz.dav.daf.main.config.SystemObject script)
Liefert den Dateinamen des Skriptquelltexts.de.bsvrz.sys.funclib.losb.datk.AtlMeta
getMetaInformation(de.bsvrz.dav.daf.main.config.SystemObject script)
Liefert die zum Skript gehörenden Metainformationen.java.lang.String
getPath()
Gibt den Pfad der Protokoll- und Skriptdateien zurück.ProtocolInputStream
getSavedProtocol(long protocolId)
Liefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.ProtocolInputStream
getUnreadProtocol(long protocolId)
Liefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.DataManagerRequest[]
getUpcomingOps(DataManagerRequest[] dmr)
Liefert eine Liste mit anstehenden Aufgaben.boolean
isUnique(long protocolId)
Überprüft ob es zu der gegebenen Protokoll-Id bereits ein gespeichertes Protokoll gibt.ProcessingInformation
process(ProcessingParameter parameter)
Startet die Interpretation eines Skriptes:
1.ProcessingInformation
process(java.lang.String source)
Startet die Interpretation eines Skriptes.void
run()
Arbeitet die Aufträge ab.void
shutdown()
Fährt den Data-Manager herunter.-
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
-
DataManager
public DataManager(de.bsvrz.dav.daf.main.ClientDavInterface dav, java.lang.String path, int quota, boolean prettyPrinter) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
Erzeugen des Data Managers. Nach dem Erzeugen des Data Manager Objekts muss der Data Manager mitThread.start()
gestartet werden.- Parameters:
dav
- Verbindung zum Datenverteilerpath
- Pfad unter dem die Dateien (Skriptquelltexte und Protokolldateien) verwaltet werden.quota
- Minimaler verbleibender Speicherplatz auf dem Datenträgern (in MB)prettyPrinter
- Steuert ob der Pretty Printer verwendet werden soll.- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException
- Falls ein ungültiger Pfad übergeben wird.
-
-
Method Detail
-
process
public ProcessingInformation process(ProcessingParameter parameter) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
Startet die Interpretation eines Skriptes:
1. Holt den Dateinamen des Skripts aus der Konfiguration
2. Erzeugen eines Skript-Interpreters und evaluieren des Skripts
3. Information zurückgeben- Specified by:
process
in interfaceDataManagerInterface
- Parameters:
parameter
- Auftragsparameter- Returns:
- Aus dem Skript gewonnene Informationen
- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException
- Fehler beim Interpretieren des Skripts.
-
getMetaInformation
public de.bsvrz.sys.funclib.losb.datk.AtlMeta getMetaInformation(de.bsvrz.dav.daf.main.config.SystemObject script) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
Description copied from interface:DataManagerInterface
Liefert die zum Skript gehörenden Metainformationen. Dazu werden die auf der Festplatte gespeicherten Informationen eingelesen. Überprüft zudem die Prüfsumme.- Specified by:
getMetaInformation
in interfaceDataManagerInterface
- Parameters:
script
- Skriptobjekt.- Returns:
- Metainformationen oder
null
falls keine Metainformation existiert. - Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException
- Korrupte Metainformation.- See Also:
DataManagerInterface.getMetaInformation(SystemObject)
-
run
public void run()
Arbeitet die Aufträge ab. Sind alle Aufträge erledigt, wartet der Thread, bis neue Aufträge eingehen. Vor beenden des Threads werden alle Schreiboperattionen abgebrochen.- Specified by:
run
in interfacejava.lang.Runnable
- Overrides:
run
in classjava.lang.Thread
-
isUnique
public boolean isUnique(long protocolId)
Überprüft ob es zu der gegebenen Protokoll-Id bereits ein gespeichertes Protokoll gibt. Wenn nicht, dann ist die Protokoll-Id eindeutig.- Specified by:
isUnique
in interfaceDataManagerInterface
- Parameters:
protocolId
- Protokoll-Id- Returns:
- true falls die protokoll-Id bereits verwendet wurde und das Protokoll auf dem Datenträger gespeichert wurde, false sonst.
-
addScriptRequest
public void addScriptRequest(de.bsvrz.dav.daf.main.ResultData[] resultData)
Übergeben einer Skript-bezogenen Anfrage.- Specified by:
addScriptRequest
in interfaceDataManagerInterface
- Parameters:
resultData
- Objekt mit den Anfrageparametern
-
getPath
public java.lang.String getPath()
Description copied from interface:DataManagerInterface
Gibt den Pfad der Protokoll- und Skriptdateien zurück. Endet mitFile.separator
- Specified by:
getPath
in interfaceDataManagerInterface
- Returns:
- Pfad der Protokoll- und Skriptdateien.
- See Also:
DataManagerInterface.getPath()
-
process
public ProcessingInformation process(java.lang.String source) throws CriticalParserException
Description copied from interface:DataManagerInterface
Startet die Interpretation eines Skriptes. Dabei werden dem Interpreter keine Aufrufparameter übergeben. Daher können die Daten, die zurückgegeben werden, nicht von der Datenaufbereitung verwendet werden.- Specified by:
process
in interfaceDataManagerInterface
- Parameters:
source
- Source des Skriptobjekts- Returns:
- Aus dem Skript gewonnene Informationen
- Throws:
CriticalParserException
- Fehlermeldung- See Also:
DataManagerInterface.process(java.lang.String)
-
addProtocolRequest
public void addProtocolRequest(de.bsvrz.dav.daf.main.ResultData[] resultData)
Übergeben einer Protokoll-bezogenen Anfrage.- Specified by:
addProtocolRequest
in interfaceDataManagerInterface
- Parameters:
resultData
- Objekt mit den Anfrageparametern
-
getFileNameSource
public java.lang.String getFileNameSource(de.bsvrz.dav.daf.main.config.SystemObject script)
Description copied from interface:DataManagerInterface
Liefert den Dateinamen des Skriptquelltexts.- Specified by:
getFileNameSource
in interfaceDataManagerInterface
- Parameters:
script
- Skriptobjekt- Returns:
- Dateiname
- See Also:
DataManagerInterface.getFileNameSource(SystemObject)
-
getFileNameMeta
public java.lang.String getFileNameMeta(de.bsvrz.dav.daf.main.config.SystemObject script)
Description copied from interface:DataManagerInterface
Liefert den Dateinamen der Metainformationen.- Specified by:
getFileNameMeta
in interfaceDataManagerInterface
- Parameters:
script
- Skriptobjekt- Returns:
- Dateiname
- See Also:
DataManagerInterface.getFileNameMeta(SystemObject)
-
getAbsolutFileNameMeta
public java.lang.String getAbsolutFileNameMeta(de.bsvrz.dav.daf.main.config.SystemObject script)
Description copied from interface:DataManagerInterface
Liefert Pfad und Dateiname der Metainformation- Specified by:
getAbsolutFileNameMeta
in interfaceDataManagerInterface
- Parameters:
script
- Skriptobjekt- Returns:
- Pfad und Dateiname
- See Also:
DataManagerInterface.getAbsolutFileNameMeta(SystemObject)
-
getAbsolutFileNameSource
public java.lang.String getAbsolutFileNameSource(de.bsvrz.dav.daf.main.config.SystemObject script)
Description copied from interface:DataManagerInterface
Liefert Pfad und Dateiname des Skriptquelltextes- Specified by:
getAbsolutFileNameSource
in interfaceDataManagerInterface
- Parameters:
script
- Skriptobjekt- Returns:
- Pfad und Dateiname
- See Also:
DataManagerInterface.getAbsolutFileNameSource(SystemObject)
-
addScriptRequest
public void addScriptRequest(ScriptRequest request)
Description copied from interface:DataManagerInterface
Übergeben einer Skript-bezogenen Anfrage- Specified by:
addScriptRequest
in interfaceDataManagerInterface
- Parameters:
request
- Anfrage- See Also:
DataManagerInterface.addScriptRequest(de.bsvrz.pua.prot.manager.requests.ScriptRequest)
-
shutdown
public void shutdown()
Description copied from interface:DataManagerInterface
Fährt den Data-Manager herunter.- Specified by:
shutdown
in interfaceDataManagerInterface
- See Also:
DataManagerInterface.shutdown()
-
deleteProtocol
public void deleteProtocol(long protocolId) throws NoncriticalException
Description copied from interface:DataManagerInterface
Löscht ein gespeichertes Protokoll.- Specified by:
deleteProtocol
in interfaceDataManagerInterface
- Parameters:
protocolId
- ProtocolId- Throws:
NoncriticalException
- Fehler beim Löschen.- See Also:
DataManagerInterface.deleteProtocol(long)
-
getSavedProtocol
public ProtocolInputStream getSavedProtocol(long protocolId) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
Description copied from interface:DataManagerInterface
Liefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.- Specified by:
getSavedProtocol
in interfaceDataManagerInterface
- Parameters:
protocolId
- Id des Protokolls, das gelesen werden soll.- Returns:
- Objekt zum Zugriff auf das gespeicherte Protokoll
- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException
- Fehler.- See Also:
DataManagerInterface.getSavedProtocol(long)
-
getUnreadProtocol
public ProtocolInputStream getUnreadProtocol(long protocolId) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
Description copied from interface:DataManagerInterface
Liefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.- Specified by:
getUnreadProtocol
in interfaceDataManagerInterface
- Parameters:
protocolId
- Id des Protokolls, das gelesen werden soll.- Returns:
- Objekt zum Zugriff auf das gespeicherte Protokoll.
- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException
- Fehler.- See Also:
DataManagerInterface.getUnreadProtocol(long)
-
createProtocolStream
public ProtocolOutputStream createProtocolStream(long protocolId, ProcessingParameter pp) throws NoncriticalException
Description copied from interface:DataManagerInterface
Erzeugt einen Ausgabestream für ein Protokoll.- Specified by:
createProtocolStream
in interfaceDataManagerInterface
- Parameters:
protocolId
- Protokoll-Id.pp
- Auftragsparameter.- Returns:
- Stream zum schreiben des Protokolls.
- Throws:
NoncriticalException
- Die Datei kann nicht angelegt werden; Fehler beim Schreiben der Protokollinformationen.- See Also:
DataManagerInterface.createProtocolStream(long,de.bsvrz.pua.prot.util.ProcessingParameter)
-
getUpcomingOps
public DataManagerRequest[] getUpcomingOps(DataManagerRequest[] dmr)
Description copied from interface:DataManagerInterface
Liefert eine Liste mit anstehenden Aufgaben.- Specified by:
getUpcomingOps
in interfaceDataManagerInterface
- Parameters:
dmr
- Array, in den das Ergebnis kopiert wird. Ist der Array zu klein, so wird ein neuer Array angelegt.- Returns:
- Anstehende Aufgaben.
- See Also:
DataManagerInterface.getUpcomingOps(DataManagerRequest[])
-
-