T
- Class of Varpublic class IndexOpt<T extends Var<?>> extends java.lang.Object implements Index<T>
Index
arbeitet analog
IndexRaw
, jedoch werden Indizes mittels eines
vorgeschalteten Offset-Arrays als Ints (4 bytes) und nicht als
Longs (8 bytes) gespeichert, was eine erhebliche Optimierung
des Speicherverbrauchs darstellt.
IndexSeqOpt
,
IndexRaw
Modifier and Type | Field and Description |
---|---|
protected int |
blockSize |
protected boolean |
buildMode |
protected long[] |
deltas |
protected int |
deltasIdx |
protected OutStream |
osIdx |
protected OutStream |
osVar |
protected int |
size |
Constructor and Description |
---|
IndexOpt() |
Modifier and Type | Method and Description |
---|---|
void |
build(OutStream os)
Build-Methode, die abschliessend den gesamten Index
inklusive aller Werte in den Ausgabe-Strom schreibt.
|
void |
connect(RandomRead rr)
Laufzeit-Methode, um eine Verbindung zu einem
geoeffneteten Daten-Container herzustellen.
|
Index<T> |
create(java.io.File workDir,
Log log)
Initialer Quasi-Konstruktor fuer den Build-Modus.
|
T |
fetch(int idx,
T var)
Laufzeit-Methode, die ein
Var aufgrund eines Index liefert,
der implizit mittels Index.push(Var) aufsteigend vergeben wurde. |
int |
getIndexSize()
Liefert die Groesse des Index sowohl zur
Build- als auch zur Laufzeit.
|
int |
push(T var)
Build-Methode, die ein
Var -Objekt vermerkt und es
dabei mit den naechsten Index (Position +1) assoziiert. |
protected boolean buildMode
protected OutStream osVar
protected OutStream osIdx
protected int size
protected long[] deltas
protected int deltasIdx
protected int blockSize
public Index<T> create(java.io.File workDir, Log log)
Index
public void connect(RandomRead rr)
Index
RandomRead.setReadIndex(long)
muss
richtig gesetzt sein.connect
in interface Index<T extends Var<?>>
rr
- RandomAccess
public int getIndexSize()
Index
getIndexSize
in interface Index<T extends Var<?>>
public T fetch(int idx, T var)
Index
Var
aufgrund eines Index liefert,
der implizit mittels Index.push(Var)
aufsteigend vergeben wurde.public int push(T var)
Index
Var
-Objekt vermerkt und es
dabei mit den naechsten Index (Position +1) assoziiert.push
in interface Index<T extends Var<?>>
var
- Var
der Wert.Index.create(File, Log)
,
Index.build(OutStream)
,
Index.fetch(int, Var)