Klasse BufferedIndexStorage
java.lang.Object
de.bsvrz.ars.ars.persistence.index.backend.storage.BufferedIndexStorage
- Alle implementierten Schnittstellen:
IndexStorage
,AutoCloseable
Puffert den lesenden Zugriff auf ein darunterliegendes
FileIndexStorage
-
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungBufferedIndexStorage
(FileIndexStorage delegate, int cacheSize) Erstellt ein neues BufferedIndexStorage -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoid
close()
void
deleteEntryAtIndex
(long entryIndex) Löscht den Eintrag am Index entryIndexint
Gibt die Byte-Größe eines Eintrags zurückvoid
flush()
int
Gibt zurück, wie viele Einträge im lesepuffer gespeichert sindvoid
getEntries
(long entryIndex, int numEntries, byte[] result, int destPos) Gibt Einträge aus dem Index zurückvoid
insertEntries
(long entryIndex, int numEntries, byte[] data, int fromPos) Fügt Einträge im Index ein, anders als beiIndexStorage.setEntries(long, int, byte[])
werden die dort bestehenden Daten aber nicht überschrieben, sondern nach hinten geschoben.long
Gibt die Anzahl Einträge zurückvoid
setEntries
(long entryIndex, int numEntries, byte[] data, int fromPos) Setzt Einträge im IndextoString()
Von Klasse geerbte Methoden java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Von Schnittstelle geerbte Methoden de.bsvrz.ars.ars.persistence.index.backend.storage.IndexStorage
addLast, addLast, getAll, getEntries, getFirst, getLast, insertEntries, setEntries
-
Konstruktordetails
-
BufferedIndexStorage
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 SchnittstelleIndexStorage
- Parameter:
entryIndex
- Nullbasierte Position des ersten Eintrags, der angefragt werden soll. Gemeint ist hier die "Zeilennummer" im Index, nicht der byte-OffsetnumEntries
- Anzahl Einträge, die angefragt werden sollenresult
- 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 SchnittstelleIndexStorage
- Parameter:
entryIndex
- Nullbasierte Position des ersten Eintrags, der gesetzt werden soll. Gemeint ist hier die "Zeilennummer" im Index, nicht der byte-OffsetnumEntries
- Anzahl Einträge, die überschrieben werden sollendata
- 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 beiIndexStorage.setEntries(long, int, byte[])
werden die dort bestehenden Daten aber nicht überschrieben, sondern nach hinten geschoben.- Angegeben von:
insertEntries
in SchnittstelleIndexStorage
- 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-OffsetnumEntries
- Anzahl Einträge, die eingefügt werden sollendata
- 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
Beschreibung aus Schnittstelle kopiert:IndexStorage
Gibt die Anzahl Einträge zurück- Angegeben von:
numEntries
in SchnittstelleIndexStorage
- 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 SchnittstelleIndexStorage
- Gibt zurück:
- die Byte-Größe eines Eintrags
-
deleteEntryAtIndex
Beschreibung aus Schnittstelle kopiert:IndexStorage
Löscht den Eintrag am Index entryIndex- Angegeben von:
deleteEntryAtIndex
in SchnittstelleIndexStorage
- Parameter:
entryIndex
- Index, der gelöscht werden soll- Löst aus:
IOException
-
flush
- Löst aus:
IOException
-
toString
-
close
- Angegeben von:
close
in SchnittstelleAutoCloseable
- 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
-