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 voidaddProtocolRequest(de.bsvrz.dav.daf.main.ResultData[] resultData)Übergeben einer Protokoll-bezogenen Anfrage.voidaddScriptRequest(de.bsvrz.dav.daf.main.ResultData[] resultData)Übergeben einer Skript-bezogenen Anfrage.voidaddScriptRequest(ScriptRequest request)Übergeben einer Skript-bezogenen AnfrageProtocolOutputStreamcreateProtocolStream(long protocolId, ProcessingParameter pp)Erzeugt einen Ausgabestream für ein Protokoll.voiddeleteProtocol(long protocolId)Löscht ein gespeichertes Protokoll.java.lang.StringgetAbsolutFileNameMeta(de.bsvrz.dav.daf.main.config.SystemObject script)Liefert Pfad und Dateiname der Metainformationjava.lang.StringgetAbsolutFileNameSource(de.bsvrz.dav.daf.main.config.SystemObject script)Liefert Pfad und Dateiname des Skriptquelltextesjava.lang.StringgetFileNameMeta(de.bsvrz.dav.daf.main.config.SystemObject script)Liefert den Dateinamen der Metainformationen.java.lang.StringgetFileNameSource(de.bsvrz.dav.daf.main.config.SystemObject script)Liefert den Dateinamen des Skriptquelltexts.de.bsvrz.sys.funclib.losb.datk.AtlMetagetMetaInformation(de.bsvrz.dav.daf.main.config.SystemObject script)Liefert die zum Skript gehörenden Metainformationen.java.lang.StringgetPath()Gibt den Pfad der Protokoll- und Skriptdateien zurück.ProtocolInputStreamgetSavedProtocol(long protocolId)Liefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.ProtocolInputStreamgetUnreadProtocol(long protocolId)Liefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.DataManagerRequest[]getUpcomingOps(DataManagerRequest[] dmr)Liefert eine Liste mit anstehenden Aufgaben.booleanisUnique(long protocolId)Überprüft ob es zu der gegebenen Protokoll-Id bereits ein gespeichertes Protokoll gibt.ProcessingInformationprocess(ProcessingParameter parameter)Startet die Interpretation eines Skriptes:
1.ProcessingInformationprocess(java.lang.String source)Startet die Interpretation eines Skriptes.voidrun()Arbeitet die Aufträge ab.voidshutdown()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.FailureExceptionErzeugen 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:
processin 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.FailureExceptionDescription copied from interface:DataManagerInterfaceLiefert die zum Skript gehörenden Metainformationen. Dazu werden die auf der Festplatte gespeicherten Informationen eingelesen. Überprüft zudem die Prüfsumme.- Specified by:
getMetaInformationin interfaceDataManagerInterface- Parameters:
script- Skriptobjekt.- Returns:
- Metainformationen oder
nullfalls 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:
runin interfacejava.lang.Runnable- Overrides:
runin 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:
isUniquein 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:
addScriptRequestin interfaceDataManagerInterface- Parameters:
resultData- Objekt mit den Anfrageparametern
-
getPath
public java.lang.String getPath()
Description copied from interface:DataManagerInterfaceGibt den Pfad der Protokoll- und Skriptdateien zurück. Endet mitFile.separator- Specified by:
getPathin 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:DataManagerInterfaceStartet 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:
processin 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:
addProtocolRequestin 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:DataManagerInterfaceLiefert den Dateinamen des Skriptquelltexts.- Specified by:
getFileNameSourcein 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:DataManagerInterfaceLiefert den Dateinamen der Metainformationen.- Specified by:
getFileNameMetain 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:DataManagerInterfaceLiefert Pfad und Dateiname der Metainformation- Specified by:
getAbsolutFileNameMetain 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:DataManagerInterfaceLiefert Pfad und Dateiname des Skriptquelltextes- Specified by:
getAbsolutFileNameSourcein 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:
addScriptRequestin interfaceDataManagerInterface- Parameters:
request- Anfrage- See Also:
DataManagerInterface.addScriptRequest(de.bsvrz.pua.prot.manager.requests.ScriptRequest)
-
shutdown
public void shutdown()
Description copied from interface:DataManagerInterfaceFährt den Data-Manager herunter.- Specified by:
shutdownin interfaceDataManagerInterface- See Also:
DataManagerInterface.shutdown()
-
deleteProtocol
public void deleteProtocol(long protocolId) throws NoncriticalExceptionDescription copied from interface:DataManagerInterfaceLöscht ein gespeichertes Protokoll.- Specified by:
deleteProtocolin 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:DataManagerInterfaceLiefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.- Specified by:
getSavedProtocolin 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:DataManagerInterfaceLiefert ein Objekt zum Zugriff auf ein gespeichertes Protokoll zurück.- Specified by:
getUnreadProtocolin 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:DataManagerInterfaceErzeugt einen Ausgabestream für ein Protokoll.- Specified by:
createProtocolStreamin 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:DataManagerInterfaceLiefert eine Liste mit anstehenden Aufgaben.- Specified by:
getUpcomingOpsin 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[])
-
-