public final class DataIndexIndex extends Object
DataTimeIndex
. Die Folge der Eintraege (min, max) ist nicht monoton,
weil es beim Nachfordern Rueckspruenge geben kann. Stattdessen sind die Eintraege nur nach dem min-Wert sortiert. Ein Eintrag enthaelt Minimum, Maximum des
Datenindex und die ContainerID.Modifier and Type | Class and Description |
---|---|
static class |
DataIndexIndex.IndexStartmode
Modi, mit denen ein Index angelegt werden kann (siehe
DataTimeIndex.DataTimeIndex(int,String,byte[],IndexStartmode) ) |
Modifier and Type | Field and Description |
---|---|
static DataIndexIndex.IndexStartmode |
APPEND_REUSE_LAST |
static DataIndexIndex.IndexStartmode |
ERASE_OLD |
static String |
IDX_FILENAME
Dateiname, unter dem alle Indices dieser Art gespeichert werden
|
static int |
NO_VALUE
Flag, mit dem signalisiert wird, dass ein Eintrag "keinen Wert" hat
|
Constructor and Description |
---|
DataIndexIndex(int bufferSize)
Erzeugt einen neuen DatenIndexIndex.
|
DataIndexIndex(int bufferSize,
String basePath,
byte[] temp,
DataIndexIndex.IndexStartmode startmode)
Erzeugt einen neuen DatenIndex.
|
Modifier and Type | Method and Description |
---|---|
void |
add(String basePath,
byte[] temp,
long dIMin,
long dIMax,
long contId)
Fügt dem Index einen neuen Eintrag hinzu.
|
int |
capacity()
Anzahl der Einträge, die dieser Index im RAM halten kann
|
void |
checkForAdd(String basePath,
byte[] temp,
long dIMin,
long dIMax,
long contId)
Prüft, ob dem Index ein neuer Eintrag hinzugefügt werden könnte.
|
void |
closeIndex(String basePath,
byte[] temp)
Schließt den Index und speichert alle geänderten Daten auf Platte.
|
int |
entries()
Anzahl der Einträge, die dieser Index im RAM hält
|
long |
getAbsolutDIdxMin(String basePath)
Liefert den kleinsten DT Min Wert, der jemals in diesem Index gespeichert wird.
|
IndexResult |
getContainerID(String basePath,
byte[] temp,
long dIMin,
long dIMax)
Liefert eine Matrix mit DIMin/Max und ContainerIds, deren DTMin/Max-Werte zwischen dTMin und dTMax liegen.
|
long |
getCurrentCID()
Liefert die aktuelle Container ID.
|
long |
getCurrentDIMax()
Liefert vom aktuellen Eintrag den Max-Wert des DatenIndex
|
long |
getCurrentDIMin()
Liefert vom aktuellen Eintrag den Min-Wert des DatenIndex
|
void |
resize(int newSize,
String basePath)
Verändert die Größe des RingBuffers.
|
String |
toString()
Gibt den Inhalt des ByteBuffers als String aus, inkl Angaben über Kapazität, Anzahl der Einträge und des CurrentEntries.
|
void |
updateMax(long newDIMax)
Aktualisiert den Max-Wert des aktuellsten Eintrages.
|
public static final String IDX_FILENAME
public static final int NO_VALUE
public static final DataIndexIndex.IndexStartmode APPEND_REUSE_LAST
public static final DataIndexIndex.IndexStartmode ERASE_OLD
public DataIndexIndex(int bufferSize, String basePath, byte[] temp, DataIndexIndex.IndexStartmode startmode) throws IndexException
bufferSize
- Anzahl der Einträge, die der die der Index im RAM halten sollbasePath
- Verzeichnis, in dem die Indexdatei liegttemp
- Ein temporäres ByteArray, das zum Suchen des currentEntries verwendet wirdstartmode
- DataIndexIndex.IndexStartmode.ERASE_OLD
: alte Indexdatei loeschen, DataIndexIndex.IndexStartmode.APPEND_REUSE_LAST
: anfuegen, letzten Eintrag
weiterverwendenIndexException
- Bei Problemem mit dem Dateizugriffpublic DataIndexIndex(int bufferSize)
bufferSize
- Anzahl der Einträge, die der die der Index im RAM halten sollpublic void updateMax(long newDIMax) throws IndexException
newDIMax
- neuer Wert für DatenIndexIndex-MaxIndexException
- Wenn der neue Wert kleiner als der dazugehörige Min-Wert ist oder wenn keinen currentEntry gibtpublic long getCurrentCID()
public long getCurrentDIMin()
public long getCurrentDIMax()
public int capacity()
public int entries()
public void add(String basePath, byte[] temp, long dIMin, long dIMax, long contId) throws IndexException
basePath
- Verzeichnis, in dem die Index-Datei liegttemp
- Puffer, der beim Einlesen/Schreiben der Index-Datei verwendet wirddIMin
- DatenIndex Min-WertdIMax
- DatenIndex Max-WertcontId
- Container IDIndexException
- Bei Problemem mit der Index-Dateipublic void checkForAdd(String basePath, byte[] temp, long dIMin, long dIMax, long contId) throws IndexException
basePath
- Verzeichnis, in dem die Index-Datei liegttemp
- Puffer, der beim Einlesen/Schreiben der Index-Datei verwendet wirddIMin
- DatenIndex Min-WertdIMax
- DatenIndex Max-WertcontId
- Container IDIndexException
- Bei Problemem mit der Index-Dateipublic IndexResult getContainerID(String basePath, byte[] temp, long dIMin, long dIMax) throws IndexException
basePath
- Verzeichnis, in dem die Index-Datei liegttemp
- Puffer, der beim Einlesen/Schreiben der Index-Datei verwendet wirddTMin
- Min-Wert der ZeitspannedTMax
- Max-Wert der ZeitspanneIndexException
- Bei Problemem mit der IndexDateipublic long getAbsolutDIdxMin(String basePath) throws IndexException
basePath
- Verzeichnis, in dem die Index-Datei liegtIndexException
- Bei Zugriffsproblemen mit der IndexDateipublic void closeIndex(String basePath, byte[] temp) throws IndexException
basePath
- Verzeichnis, in dem die Index-Datei liegttemp
- Puffer, der beim Schreiben der Index-Datei verwendet wirdIndexException
public String toString()
public void resize(int newSize, String basePath) throws IndexException
newSize
- basePath
- IndexException