#include <GInvertedList.h>
Inheritance diagram for groupindex::GInvertedList< Group >:
Public Member Functions | |
GInvertedList (const GInvertedList< Group > &glist) | |
Copy-Konstruktor. | |
GInvertedList (long id) | |
Standard-Konstruktor. | |
GInvertedList () | |
Standard-Konstruktor. | |
GInvertedList (std::fstream &ifs) | |
Initialisiert die Suchphase des Index. | |
GInvertedList< Group > & | operator *= (const Group &g) |
Multipliziert die Einträge der Liste mit dem Gruppenelement g . | |
iterator | begin () |
liefert die Position des ersten Treffers der invertierten Liste. | |
iterator | begin (bool dummy) |
iterator | end () |
liefert die Endposition der Treffermenge. | |
iterator | end (bool dummy) |
int | size () const |
Anzahl von ListTupeln, die in der Liste gespeichert sind und noch credit haben. | |
void | setCredit (int credit) |
virtual void | insert (const Group &g, int i) |
Fügt das Tupel (sh,i) in die invertierte Liste ein. | |
void | remove (int fileindex) |
Löschen aller ListTupel lt , bei denen lt.i=fileindex ist. | |
void | intersect (GInvertedList< Group > &set2, int &mismatches) |
bildet die Schnittmenge einer GInvertedList mit einer ResultList . | |
void | merge (GInvertedList< Group > &set2) |
void | setHeapStream (std::fstream &hps) |
Für Kompatibilität mit MultiDimGList:. | |
~GInvertedList () | |
Destruktor. | |
Protected Member Functions | |
void | initFileRead (std::ifstream &ifs) |
void | initFileRead (std::fstream &ifs) |
virtual void | readElements () |
Liest die ListTupel der Liste in einen internen Puffer. | |
virtual void | readElements (int credit) |
Liest die ListTupel der Liste in einen internen Puffer. | |
virtual void | readElements (ListTupel< Group > *buffer, int credit) |
Liest die ListTupel der Liste in buffer . | |
void | clear () |
Gib den in readElements() reservierten Speicher wieder frei. | |
void | setFileName (long id) |
Namen der temporären Datei anhand von id ermitteln. | |
virtual void | writeToFile (std::ofstream &ofs) |
Sortiert die ListTupel dieser Liste und schreibe diese in die Datei stream . | |
read_iterator | find (const ListTupel< Group > <) |
Binärsuche nach lt in den Elementen der invertierten Liste. | |
read_iterator | find (const ListTupel< Group > <, read_iterator &it) |
void | remove (read_iterator &it) |
void | decrease (read_iterator &it) |
void | assign (const read_iterator &new_beg, const read_iterator &new_end) |
assign() legt den Bereich fest, der von Iteratoren zu durchlaufen ist. | |
void | initInsertion () |
Bereitet die Liste darauf vor, dass durch Aufrufe von insert() neue Elemente eingefügt werden. | |
void | insert (read_iterator &pos, const ListTupel< Group > <) |
Einfüge-Methode zum Einfügen von Elementen bei der mismatch-Suche. | |
void | initUpdate () |
read_iterator | _begin (void *) |
read_iterator | _end (void *) |
Protected Attributes | |
ListTupel< Group > * | insertion_buffer |
Die öffentliche iterator - Klasse einer G-invertierten Liste hat in erster Linie die Funktion, die Ergebnisse der Schnittmengenberechnungen zurückzuliefern. | |
int | ins_buffer_size |
int | ins_buffer_pos |
std::fstream * | m_stream |
Zeiger auf Indexdatei, in der die Einträge der Liste beim Aufruf von intersect (...) bzw. | |
long | m_fileoffset |
startposition dieser Liste in der Indexdatei | |
long | m_id |
innerhalb eines Index eindeutige ID der Liste. Diese id wird der Liste durch den Konstruktor GInvertedList(long) mitgeteilt. | |
char | m_insertion_file_name [1024] |
Name der temporären Datei beim Einfügen. Dieser wird anhand von m_id ermittelt. | |
Group | m_factor_inverse |
Faktor, der im operator*=() gesetzt wird. | |
Group | m_factor |
Faktor, der im operator*=() gesetzt wird. | |
ListTupel< Group > * | m_pos_beg |
Postion für begin()-Iterator. | |
ListTupel< Group > * | m_pos_end |
Postion für end()-Iterator. | |
int | m_element_count |
Anzahl der Einträge in der G-invertierten Liste. | |
int | m_new_element_count |
und daher auch noch nicht bei der Suche berücksichtigt werden | |
ListTupel< Group > * | m_elements |
Elemente der invertierten Liste. | |
std::set< int > | m_deleted_fileindices |
aus dem Index gelöscht werden sollen | |
Friends | |
std::ofstream & | operator<< ANSI_BRACES (std::ofstream &o, GInvertedList< Group > &l) |
Operator zum Speichern einer GInvertedList . |
Es sind alle von einer GroupIndex
- Instanz benötigten Schnitstellen definiert, so dass eine GInvertedList
exakte Schnittmengenbildung zur Suche mit Mismatches und Fuzzy- Freiheitsgraden ermöglicht. Die Template-Klasse Group
muss die Funktionalität einer Gruppenklasse implementieren.
|
Standard-Konstruktor. Diese id wird in erster Linie dazu verwendet, einen eindeutigen Namen für eine temporäre Datei zu ermitteln. |
|
Initialisiert die Suchphase des Index.
Die Datei ifstream muß an der aktuellen Position eine von |
|
Die Iteratoren |
|
Bereitet die Liste darauf vor, dass durch Aufrufe von insert() neue Elemente eingefügt werden.
Als Temporärer Speicher dient das durch
|
|
Fügt das Tupel
Vor Aufruf muß
Representation- Objekt verwaltete Nummer sein; insert() wird i.A. von einem Representation- Objekt aufgerufen, niemals direkt aus einer Anwendung. |
|
bildet die Schnittmenge einer
GInvertedList<Group> können in der Methode intersect algebraische Eigenschaften für spezielle Anwendungen genutzt werden. |
|
Multipliziert die Einträge der Liste mit dem Gruppenelement
Intern wird diese Multiplikation "lazy" ausgeführt, d.h. erst dann, wenn auf ein Element tatsächlich zugegriffen wird. Nach aussen liefert die Liste die Einträge (durch die |
|
Liest die ListTupel der Liste in
|
|
Sortiert die ListTupel dieser Liste und schreibe diese in die Datei Es werden folgende ListTupel in den Index eingefügt:
Reimplemented in groupindex::IntervalIntersectionGList< Group, numeric, Dim, numeric_writer >. |
|
Die öffentliche
Zum bearbeiten einer Suchanfrage wird i.A. von einem |
|
Zeiger auf Indexdatei, in der die Einträge der Liste beim Aufruf von
|