|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.ars.ars.persistence.ContainerBackupIndex
public final class ContainerBackupIndex
Ein ContainerBackupIndex ist eine Klasse, die innerhalb einer Datenindentifikationsverzeichnisses speichert, welche Container in diesem Verzeichnis noch zu
sichern sind, damit nicht jeder einzelne ContainerHEader geprüft werden muss.
Es wird eine Datei namens _backupindex.idx gespeichert, welche die
eigentlichen Einträge enthält. Diese besteht aus einem Header-Bereich un einem Datenbereich, wobei der Datenbereich unterteilt ist, in sortierte Daten und
unsortierte Daten. Zur Optimierung des Zugriffs, wird, falls es notwendig wird, der komplette Datenbereich sortiert.
Als Daten enthält ein
ContainerBackupIndex ContainerIDs mit einem zugehörigen Byte-Wert, der den Status dieses Container-Eintrags angibt (sichern oder ungültig). Sichern bedeutet,
dass der Container gesichert wird. Ungültig bedeutet, dass ein Eintrag ungültig ist. Ein Eintrag wird typischerweise als ungültig markiert, wenn der
entsprechende Container gesichert wurde, um diesen nicht erneut zu sichern. Einen Eintrag als ungültig zu markieren ist performancemäßig sinnvoller, als
ständig den gesamten Datenbereich neu zu schreiben um eventuelle Lücken zu schließen.
Nested Class Summary | |
---|---|
private static class |
ContainerBackupIndex.ContainerBackupIndexImplementation
Eigentliche Implementierung des ContainerBackupIndex. |
Field Summary | |
---|---|
private static Debug |
_debug
|
private ContainerBackupIndex.ContainerBackupIndexImplementation |
_impl
|
private Object |
_implLock
|
private boolean |
_isOpened
|
static String |
BACKUP_INDEX_FILE_NAME
Dateiname unter dem der Index gespchert wird |
static int |
MEDIUM_ID_UNKNOWN
Maximale MedienID unbekannt |
static int |
MEDIUM_ID_UNSAVED
Datenidentifikation wurde noch nie gesichert |
Constructor Summary | |
---|---|
private |
ContainerBackupIndex(ContainerBackupIndex.ContainerBackupIndexImplementation implementation)
Erstellt mit der angebenden ContainerBackupIndexImplementation einen neuen ContainerBackupIndex. |
Method Summary | |
---|---|
void |
appendContainerID(long containerID)
Fügt dem Index eine ContainerID hinzu |
void |
close()
Schließt diesen ContainerBackupIndex. |
static ContainerBackupIndex |
createNewContainerBackupIndex(File path)
Erstellt einen neuen, leeren ContainerBackupIndex im angegebenen Verzeichnis. |
static boolean |
deleteContainerBackupIndex(File path)
Löscht den ContainerBackupIndex im angebenden Verzeichnis |
static boolean |
existsIn(File path)
Prüft ob im angebenden Verzeichnis ein ContainerBackupIndex existiert |
static boolean |
existsIn(String path)
Prüft ob im angebenden Verzeichnis ein ContainerBackupIndex existiert |
protected void |
finalize()
|
static ContainerBackupIndex |
getContainerBackupIndex(File path)
Gibt einen ContainerBackupIndex aus einem angegebenen Verzeichnis zurück |
static ContainerBackupIndex |
getContainerBackupIndex(String path)
Gibt einen ContainerBackupIndex aus einem angegebenen Verzeichnis zurück |
List<Long> |
getContainerIDs()
Gibt alle zu sichernden ContainerIDs im Index zurück |
int |
getMaxMedienID()
Gibt die in der ContainerBackupIndex-Datei maximal gespeicherte MedienID zurück. |
boolean |
removeContainerID(long containerID)
Entfernt eine ContainerID aus dem Index |
boolean |
removeContainerID(long containerID,
int mediumID)
Entfernt eine ContainerID aus dem Index |
void |
setMaxMedienID(int mediumID)
Setzt die MedienID auf einen festgelegten Wert (erlaubt auch das Zurücksetzen oder das Setzen von MEDIUM_ID_UNSAVED bzw. |
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int MEDIUM_ID_UNKNOWN
public static final int MEDIUM_ID_UNSAVED
public static final String BACKUP_INDEX_FILE_NAME
private static final Debug _debug
private final ContainerBackupIndex.ContainerBackupIndexImplementation _impl
private final Object _implLock
private boolean _isOpened
Constructor Detail |
---|
private ContainerBackupIndex(ContainerBackupIndex.ContainerBackupIndexImplementation implementation)
implementation
- ImplementationMethod Detail |
---|
public static ContainerBackupIndex getContainerBackupIndex(File path)
path
- Verzeichnis
public static ContainerBackupIndex getContainerBackupIndex(String path) throws IOException
path
- Verzeichnis
IOException
- IO-Fehlerpublic static ContainerBackupIndex createNewContainerBackupIndex(File path) throws IOException
path
- Verzeichnis
IOException
- IO-Fehlerpublic static boolean deleteContainerBackupIndex(File path)
path
- Verzeichnis
public static boolean existsIn(File path)
path
- Verzeichnis
public static boolean existsIn(String path)
path
- Verzeichnis
public List<Long> getContainerIDs() throws IOException
IOException
- IO-Fehler
IllegalStateException
- Falls Index bereits geschlossen wurdepublic boolean removeContainerID(long containerID) throws IOException
containerID
- ContainerID die zu entfernen ist.
IOException
- IO-Fehler
IllegalStateException
- Falls Index bereits geschlossen wurdepublic boolean removeContainerID(long containerID, int mediumID) throws IOException
containerID
- ContainerID die zu entfernen ist.mediumID
- Beim sichern eines Containers kann eine MediumID mit angegeben werden, die dann im Index vermerkt wird. Wird nur berücksichtigt, wenn es
sich um eine positive Zahl handelt und nicht bereits eine größere MedienID in der Datei vorhanden ist
IOException
- IO-Fehler
IllegalStateException
- Falls Index bereits geschlossen wurdepublic void appendContainerID(long containerID) throws IOException
containerID
- ContainerID die einzufügen ist
IOException
- IO-Fehler
IllegalStateException
- Falls Index bereits geschlossen wurdepublic int getMaxMedienID() throws IOException
IOException
- IO-Fehlerpublic void setMaxMedienID(int mediumID) throws IOException
MEDIUM_ID_UNSAVED
bzw. MEDIUM_ID_UNKNOWN
mediumID
- MedienID
IOException
- IO-Fehlerpublic void close()
protected void finalize() throws Throwable
finalize
in class Object
Throwable
public String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |