Schnittstelle PersistenceDirectoryManager

Alle Superschnittstellen:
DataGapManager
Alle bekannten Implementierungsklassen:
SingletonPersistenceDirectoryManager, TimeBasedPersistenceDirectoryManager

public interface PersistenceDirectoryManager extends DataGapManager
Verwaltung von mehreren (zeitlich getrennten) Persistenzverzeichnissen
  • Methodendetails

    • updatePersistenceDirectories

      void updatePersistenceDirectories(long archTime) throws IOException, InterruptedException, PersistenceException
      Aktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit
      Parameter:
      archTime - aktuelle Archivzeit (Millis seit Epoch)
      Löst aus:
      IOException - IO-Fehler
      InterruptedException - Unterbrochen beim Einrichten des neuen Persistenzverzeichnisses
      PersistenceException - Allgemeiner Persistenzfehler
    • getActivePersistenceDirectory

      @Nullable ActivePersistenceDirectory getActivePersistenceDirectory()
      Gibt das Persistenzverzeichnis zurück, in das aktuell archiviert wird. Kann null zurückgeben, z. B. während der Initialisierung oder während noch nichts archiviert wurde.
      Gibt zurück:
      Aktives Persistenzverzeichnis
    • getPersistenceDirectories

      List<? extends PersistenceDirectory> getPersistenceDirectories(int simVariant, SequenceSpecification sequenceSpecification)
      Ermittelt alle Persistenzverzeichnisse, die zur angegebenen Zeitspezifikation die zugehörigen Archivdaten enthält.

      Achtung: Da bei Archivanfragen ggf. ein initialer Zustand und ein Nachfolgedatensatz (Gültigkeitsdauer des letzten Datensatzes) ermittelt werden muss, muss ein Aufrufer ggf. noch zusätzlich einen vorherigen oder nachfolgenden Container aus einem anderen Verzeichnis eigenständig ermitteln!

      Parameter:
      simVariant - Simulationsvariante
      sequenceSpecification - Zeitspezifikation
      Gibt zurück:
      Collection mit Persistenzverzeichnissen, die zurückgegebene Liste ist immutable.
    • getSimulationPersistenceDirectory

      @Nullable ActivePersistenceDirectory getSimulationPersistenceDirectory(int simVariant)
      Gibt das Persistenzverzeichnis zurück, das von einer speziellen Simulation verwendet wird
      Parameter:
      simVariant - Simulationsvariante (> 0)
      Gibt zurück:
      zugehöriges Persistenzverzeichnis oder null (wenn keines existiert).
    • getRootPath

      @NotNull @Contract(pure=true) Path getRootPath()
      Gibt das Wurzelverzeichnis der Persistenz zurück, unter dem die weiteren Persistenzverzeichnisse (je Zeitbereich) angelegt werden.
      Gibt zurück:
      Wurzelverzeichnis, nicht null
    • initialize

      Initialisiert die Verzeichnisverwaltung und lädt z. B. die vorhandenen Verzeichnisse ein
      Löst aus:
      IOException - Dateisystem-Lesefehler
      InterruptedException - Unterbrochen
      PersistenceException - Persistenz fehler
      DirectoryIsLockedException - Persistenzverzeichnis ist bereits gelockt (isActive-Datei existiert)
    • shutDown

      void shutDown()
      Terminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien.
    • createSimulationDirectory

      ActivePersistenceDirectory createSimulationDirectory(int simVariant)
      Erstellt für die angegebene Simulationsvariante das Persistenzverzeichnis. Sollte bereits ein Verzeichnis existieren, wird es zurückgegeben.
      Parameter:
      simVariant - Simulationsvariante (größer 0)
      Gibt zurück:
      Zugehöriges Persistenzverzeichnis
    • deleteSimulationDirectory

      void deleteSimulationDirectory(ActivePersistenceDirectory directory)
      Löscht ein Verzeichnis einer Simulation
      Parameter:
      directory - Persistenzverzeichnis der Simulation
    • getGapFilePath

      @NotNull @Contract(pure=true) Path getGapFilePath(IdDataIdentification dataIdentification)
      Gibt den Pfad und Dateinamen einer Lückendatei für das Nachfordern zurück. In dieser Datei werden die bereits erhaltenen Datenlücken vermerkt, also wo erfolglos nachgefordert wurde, damit diese nicht sinnloserweise neu angefragt werden.
      Parameter:
      dataIdentification - Datenidentifikation
      Gibt zurück:
      Ein Dateipfad