Klasse BufferedIndexStorage

java.lang.Object
de.bsvrz.ars.ars.persistence.index.backend.storage.BufferedIndexStorage
Alle implementierten Schnittstellen:
IndexStorage, AutoCloseable

public class BufferedIndexStorage extends Object implements IndexStorage, AutoCloseable
Puffert den lesenden Zugriff auf ein darunterliegendes FileIndexStorage
  • Konstruktordetails

    • BufferedIndexStorage

      public BufferedIndexStorage(FileIndexStorage delegate, int cacheSize)
      Erstellt ein neues BufferedIndexStorage
      Parameter:
      delegate - FileIndexStorage
      cacheSize - Größe des Puffers in Bytes
  • Methodendetails

    • getEntries

      public void getEntries(long entryIndex, int numEntries, byte[] result, int destPos) throws IOException
      Beschreibung aus Schnittstelle kopiert: IndexStorage
      Gibt Einträge aus dem Index zurück
      Angegeben von:
      getEntries in Schnittstelle IndexStorage
      Parameter:
      entryIndex - Nullbasierte Position des ersten Eintrags, der angefragt werden soll. Gemeint ist hier die "Zeilennummer" im Index, nicht der byte-Offset
      numEntries - Anzahl Einträge, die angefragt werden sollen
      result - Byte-Array, in das das Ergebnis kopiert werden soll, muss mindestens destPos + (numEntries * IndexStorage.entryByteSize()) Bytes groß sein.
      destPos - Ziel-Position im Byte-Array. Standardmäßig 0.
      Löst aus:
      IOException - IO-Fehler (z. B. bei Dateizugriff)
    • setEntries

      public void setEntries(long entryIndex, int numEntries, byte[] data, int fromPos) throws IOException
      Beschreibung aus Schnittstelle kopiert: IndexStorage
      Setzt Einträge im Index
      Angegeben von:
      setEntries in Schnittstelle IndexStorage
      Parameter:
      entryIndex - Nullbasierte Position des ersten Eintrags, der gesetzt werden soll. Gemeint ist hier die "Zeilennummer" im Index, nicht der byte-Offset
      numEntries - Anzahl Einträge, die überschrieben werden sollen
      data - Byte-Array, aus dem die Daten kopiert werden sollen, muss mindestens fromPos + (numEntries * IndexStorage.entryByteSize()) Bytes groß sein.
      fromPos - Von-Position im Byte-Array. Standardmäßig 0.
      Löst aus:
      IOException - IO-Fehler (z. B. bei Dateizugriff)
    • insertEntries

      public void insertEntries(long entryIndex, int numEntries, byte[] data, int fromPos) throws IOException
      Beschreibung aus Schnittstelle kopiert: IndexStorage
      Fügt Einträge im Index ein, anders als bei IndexStorage.setEntries(long, int, byte[]) werden die dort bestehenden Daten aber nicht überschrieben, sondern nach hinten geschoben.
      Angegeben von:
      insertEntries in Schnittstelle IndexStorage
      Parameter:
      entryIndex - Nullbasierte Position an der Eingefügt werden soll (neuer Index des ersten eingefügten Eintrags). Gemeint ist hier die "Zeilennummer" im Index, nicht der byte-Offset
      numEntries - Anzahl Einträge, die eingefügt werden sollen
      data - Byte-Array, aus dem die Daten kopiert werden sollen, muss mindestens (numEntries * IndexStorage.entryByteSize()) Bytes groß sein.
      fromPos - Von-Position im Byte-Array. Standardmäßig 0.
      Löst aus:
      IOException - IO-Fehler (z. B. bei Dateizugriff)
    • numEntries

      public long numEntries() throws IOException
      Beschreibung aus Schnittstelle kopiert: IndexStorage
      Gibt die Anzahl Einträge zurück
      Angegeben von:
      numEntries in Schnittstelle IndexStorage
      Gibt zurück:
      die Anzahl Einträge
      Löst aus:
      IOException
    • entryByteSize

      public int entryByteSize()
      Beschreibung aus Schnittstelle kopiert: IndexStorage
      Gibt die Byte-Größe eines Eintrags zurück
      Angegeben von:
      entryByteSize in Schnittstelle IndexStorage
      Gibt zurück:
      die Byte-Größe eines Eintrags
    • deleteEntryAtIndex

      public void deleteEntryAtIndex(long entryIndex) throws IOException
      Beschreibung aus Schnittstelle kopiert: IndexStorage
      Löscht den Eintrag am Index entryIndex
      Angegeben von:
      deleteEntryAtIndex in Schnittstelle IndexStorage
      Parameter:
      entryIndex - Index, der gelöscht werden soll
      Löst aus:
      IOException
    • flush

      public void flush() throws IOException
      Löst aus:
      IOException
    • toString

      public String toString()
      Setzt außer Kraft:
      toString in Klasse Object
    • close

      public void close() throws IOException
      Angegeben von:
      close in Schnittstelle AutoCloseable
      Löst aus:
      IOException
    • getBufferedCount

      public int getBufferedCount()
      Gibt zurück, wie viele Einträge im lesepuffer gespeichert sind
      Gibt zurück:
      Anzahl Einträge