public class ConfigFileHeaderInfo extends java.lang.Object implements ConfigurationAreaFileInformationReader
Diese Klasse repräsentiert den Header einer Konfigurationsdatei (“blaue Datei”). Klasse, die noch zu dokumentieren ist.
Modifier and Type | Field and Description |
---|---|
private short |
_activeVersionFile
aktive Version, die aus der Datei gelesen wurde.
|
private java.io.File |
_configAreaFile
Datei, aus der der Header gelesen wird
|
private java.lang.String |
_configurationAreaPid
Pid des Konfigurationsbereichs
|
private java.util.Map<java.lang.Short,java.lang.Long> |
_configurationAuthorityVersionActivationTime
synchronisierte Map, die den Aktivierungszeitpunkt jeder Version speichert.
|
private long |
_configurationDataChanged
letzter Zeitpunkt, an dem ein konfigurierender Datensatz geändert wurde.
|
private long |
_configurationObjectChanged
letzter Zeitpunkt, an dem ein Konfigurationsobjekt geändert wurde.
|
private Debug |
_debug |
private long |
_dynamicObjectChanged
letzter Zeitpunkt, an dem ein dynamisches Objekt geändert wurde.
|
(package private) long |
_headerEnd
Headerende
|
(package private) int |
_headerSize
Headerlänge. dieser Wert steht vor dem eigentlichen Header
|
private short |
_nextActiveVersionFile
nächste aktive Version, die aus der Datei eingelesen wurde.
|
private short |
_nextInvalidBlockVersion
Speichert die nächste ungültige Version.
|
private short |
_objectVersion |
private java.util.Map<java.lang.Short,ConfigAreaFile.OldBlockInformations> |
_oldObjectBlocks
Speichert zu jedem Block, in dem ungültige Objekte gespeichert sind, ein Objekt ab, das die Position des Blocks (relativ zum Headerende) in der Datei enthält und einen Zeitstempel (wann wurde diese Version gültig), der sich auf den Block bezieht.
|
private int |
_serializerVersion |
private long |
_startIdIndex
relative Position des Index, der die IdŽs verwaltet.
|
private long |
_startMixedSet
Gibt an, wo (relativ zum Header) die Mischobjektmenge beginnt.
|
private long |
_startOldDynamicObjects
relative Position des Blocks, der alle ungültigen dynamischen Objekte enthält, die nach einer Reorganisation in diesem Block geschrieben wurden.
|
private long |
_startPidHashCodeIndex
relative Position des Index, der die hashCodes der PidŽs verwaltet verwaltet. (-1 bedeutet, dass dieser Wert nicht aus dem Header ausgelesen werden konnte oder beim erzeugen des Headers nicht bekannt war (Datei erzeugen))
|
Constructor and Description |
---|
ConfigFileHeaderInfo(java.io.File configAreaFile)
Legt ein neues Objekt vom Typ ConfigFileHeaderInfo an.
|
ConfigFileHeaderInfo(int headerSize,
short activeVersionFile,
short nextActiveVersionFile,
java.io.File configAreaFile,
java.util.Map<java.lang.Short,ConfigAreaFile.OldBlockInformations> oldObjectBlocks,
short nextInvalidBlockVersion,
java.util.Map<java.lang.Short,java.lang.Long> configurationAuthorityVersionActivationTime,
long startOldDynamicObjects,
long startIdIndex,
long startPidHashCodeIndex,
long startMixedSet,
java.lang.String configurationAreaPid,
long dynamicObjectChanged,
long configurationObjectChanged,
long configurationDataChanged,
Debug debug,
int serializerVersion,
short objectVersion)
Konstruktor zu Testzwecken
|
Modifier and Type | Method and Description |
---|---|
short |
getActiveVersionFile() |
java.io.File |
getConfigAreaFile() |
java.lang.String |
getConfigurationAreaPid() |
java.util.Map<java.lang.Short,java.lang.Long> |
getConfigurationAuthorityVersionActivationTime() |
long |
getConfigurationDataChanged() |
long |
getConfigurationObjectChanged() |
long |
getDynamicObjectChanged() |
ConfigFileHeaderInfo |
getHeader() |
long |
getHeaderEnd() |
int |
getHeaderSize() |
short |
getNextActiveVersionFile() |
short |
getNextInvalidBlockVersion() |
SystemObjectInformationInterface |
getObject(long filePosition) |
short |
getObjectVersion()
Versionsnummer des Dateiformates.
|
java.util.Map<java.lang.Short,ConfigAreaFile.OldBlockInformations> |
getOldObjectBlocks() |
int |
getSerializerVersion() |
long |
getStartIdIndex() |
long |
getStartMixedSet() |
long |
getStartOldDynamicObjects() |
long |
getStartPidHashCodeIndex() |
int _headerSize
Headerlänge. dieser Wert steht vor dem eigentlichen Header
long _headerEnd
Headerende
private short _activeVersionFile
aktive Version, die aus der Datei gelesen wurde.
private short _nextActiveVersionFile
nächste aktive Version, die aus der Datei eingelesen wurde.
private java.io.File _configAreaFile
Datei, aus der der Header gelesen wird
private java.util.Map<java.lang.Short,ConfigAreaFile.OldBlockInformations> _oldObjectBlocks
Speichert zu jedem Block, in dem ungültige Objekte gespeichert sind, ein Objekt ab, das die Position des Blocks (relativ zum Headerende) in der Datei enthält und einen Zeitstempel (wann wurde diese Version gültig), der sich auf den Block bezieht. Als Key dient die Versionsnummer. Sind keine Elemente vorhanden, so wurde noch kein Block angelegt. Wenn die Datei neu erzeugt wird, ist dies der Fall. Der erste Block entsteht nach der ersten Reorganisation, nach dem die aktuelle Version erhöht wurde.
WARNUNG: Beim Zugriff mit .get() muss der Key auf short gecastet werden (.get((short) XXX)) !!!
Diese Informationen werden für die Reorganisation gebraucht, bei einem Neustart wird aus diesen Informationen die Map _configurationAuthorityVersionActivationTime rekonstruiert.
Es sind zwei Maps nötig, da die _oldObjectBlocks-Map speichert wie weit die Reorganisation gekommen ist und die Map _configurationAuthorityVersionActivationTime wird im Konstruktor gesetzt und wird dann die nächste gültige Vesion enthalten und ist dadurch um mindestens eine Version größer als jede Version die _oldObjectBlocks speichert.
Findet kein Versionswechsel statt, sind die Version/Zeitstempel Paare in _oldObjectBlocks und _configurationAuthorityVersionActivationTime identisch.
private short _nextInvalidBlockVersion
Speichert die nächste ungültige Version. Es ist die größte Version aus _oldObjectBlocks plus 1. Ist noch kein Block vorhanden, so ist die “nächste” ungültige Version, Version 2 (Version 1 ist die erste mögliche gültige Version)
private java.util.Map<java.lang.Short,java.lang.Long> _configurationAuthorityVersionActivationTime
synchronisierte Map, die den Aktivierungszeitpunkt jeder Version speichert. Als Key dient die Version, als value wird der Zeitpunkt zurückgegbeen, an dem das Konfigurationsverantwortliche die Version aktiviert hat. Siehe auch Kommentar _oldObjectBlocks.
WARNUNG: Beim Zugriff mit .get() muss der Key auf short gecastet werden (.get((short) XXX)) !!!
private long _startOldDynamicObjects
relative Position des Blocks, der alle ungültigen dynamischen Objekte enthält, die nach einer Reorganisation in diesem Block geschrieben wurden.
private long _startIdIndex
relative Position des Index, der die IdŽs verwaltet.
private long _startPidHashCodeIndex
relative Position des Index, der die hashCodes der PidŽs verwaltet verwaltet. (-1 bedeutet, dass dieser Wert nicht aus dem Header ausgelesen werden konnte oder beim erzeugen des Headers nicht bekannt war (Datei erzeugen))
private long _startMixedSet
Gibt an, wo (relativ zum Header) die Mischobjektmenge beginnt. Dies steht entweder im Header, oder bei einener neuen Datei beginnt dieser Bereich genau hinter dem Header.
private java.lang.String _configurationAreaPid
Pid des Konfigurationsbereichs
private long _dynamicObjectChanged
letzter Zeitpunkt, an dem ein dynamisches Objekt geändert wurde. Der Wert -1 zeigt an, dass dieser Wert noch unbekannt ist.
private long _configurationObjectChanged
letzter Zeitpunkt, an dem ein Konfigurationsobjekt geändert wurde. Der Wert -1 zeigt an, dass dieser Wert noch unbekannt ist.
private long _configurationDataChanged
letzter Zeitpunkt, an dem ein konfigurierender Datensatz geändert wurde. Der Wert -1 zeigt an, dass dieser Wert noch unbekannt ist.
private Debug _debug
private int _serializerVersion
private short _objectVersion
public ConfigFileHeaderInfo(int headerSize, short activeVersionFile, short nextActiveVersionFile, java.io.File configAreaFile, java.util.Map<java.lang.Short,ConfigAreaFile.OldBlockInformations> oldObjectBlocks, short nextInvalidBlockVersion, java.util.Map<java.lang.Short,java.lang.Long> configurationAuthorityVersionActivationTime, long startOldDynamicObjects, long startIdIndex, long startPidHashCodeIndex, long startMixedSet, java.lang.String configurationAreaPid, long dynamicObjectChanged, long configurationObjectChanged, long configurationDataChanged, Debug debug, int serializerVersion, short objectVersion)
Konstruktor zu Testzwecken
public ConfigFileHeaderInfo(java.io.File configAreaFile) throws java.io.IOException
Legt ein neues Objekt vom Typ ConfigFileHeaderInfo an. Aus der Datei, die als Parameter übergeben wird, wird der Header seriell ausgelesen und die entsprechenden Variablen gespeichert.
configAreaFile
- “blaue Datei” aus der der Header gelesen wird.java.io.IOException
- falls beim Einlesen ein Fehler auftritt.public long getHeaderEnd()
public short getActiveVersionFile()
public short getNextActiveVersionFile()
public java.io.File getConfigAreaFile()
public java.util.Map<java.lang.Short,ConfigAreaFile.OldBlockInformations> getOldObjectBlocks()
public short getNextInvalidBlockVersion()
public java.util.Map<java.lang.Short,java.lang.Long> getConfigurationAuthorityVersionActivationTime()
public long getStartOldDynamicObjects()
public long getStartIdIndex()
public long getStartPidHashCodeIndex()
public long getStartMixedSet()
public java.lang.String getConfigurationAreaPid()
public long getDynamicObjectChanged()
public long getConfigurationObjectChanged()
public long getConfigurationDataChanged()
public int getSerializerVersion()
public short getObjectVersion()
Versionsnummer des Dateiformates.
public SystemObjectInformationInterface getObject(long filePosition)
getObject
in interface ConfigurationAreaFileInformationReader
public ConfigFileHeaderInfo getHeader()
getHeader
in interface ConfigurationAreaFileInformationReader
public int getHeaderSize()