The GroupIndex Template Library
Main Page | Class Hierarchy | Class List | File List | Class Members

groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers > Class Template Reference

Standard-Repräsentantenklasse, die für eine Vielzahl von GroupIndex -Instanzen verwendet werden kann. More...

#include <DefaultRepresentation.h>

Collaboration diagram for groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

iterator begin ()
iterator end ()
 DefaultRepresentation (long i_expected_size, long i_increment_size)
 Konstruktor mit frei wählbaren Erweiterungs-Parametern.

 DefaultRepresentation ()
 Standard-Konstruktor.

GList * operator[] (int index)
GList * operator[] (const Set &r)
 Liefert die dem Repräsentanten r zugeordnete G-invertierte Liste zu.

Set getRepresentative (long i)
 Liefert den dem angegebenen Index zugeordnenten Repräsentanten zurück.

virtual void insert (Set m, int i)
 Vor Aufruf muß initInsertion() aufgerugen werden, damit eine Datei zum anhängen der neuen Daten zur Verfügung steht.

void remove (int fileindex)
 Löscht die Datei mit Namen filename aus allen G-invertierten Listen.

virtual void init ()
 Initialisiert die Einfügephase des Index.

GList * operator[] (const int &i) const
 Liefert die i-te G-invertierte Liste.

long getGListIndex (Set &r)
 Liefert den Index der dem Repräsentanten r zugeordneten G-invertierte Liste.

long size () const
 Anzahl aktuell vorhandener Repräsentanten.

 ~DefaultRepresentation ()
 Destruktor.

void clear ()
 Zurücksetzen des Repräsentantensystems.

void writeStatistics (FILE *stream)
 Auswerten der Verteilung der G-invertierten Listen.

void setHeapStream (std::fstream &hps)
std::fstream & getHeapStream ()

Protected Member Functions

void expandGLists ()
 nur zu internen Zwecken.

void insertGList (const Set &r, long pos)
 Anlegen einer neuen G_invertierten Liste.

virtual void writeToFile (std::ofstream &ofs)
 Schreibt den kompletten (ggf.

void initFileRead (std::fstream &ifs)

Protected Attributes

Set * gListRepresentatives
 Repräsentanten der invertierten Listen.

long gList_count
 Anzahl nicht-leerer (also tats\"achlich vorhandener) G-invertierter Listen.

long expected_size
 Erwartete Anzahl benötigter G-invertierter Listen.

long increment_size
 Anzahl G-inv.

long current_size
 maximale Anzahl verfügbarer G-inv. Listen

long filecounter
 nur zu internen Zwecken.

GList ** gLists
 Array mit G-invertierten Listen.

std::fstream * m_heapStream

Friends

std::ofstream & operator<< ANSI_BRACES (std::ofstream &ofs, DefaultRepresentation &dr)
std::fstream & operator>> (std::fstream &ifs, DefaultRepresentation &dr)

Detailed Description

template<class Set, class Group, class GList = GInvertedList<Group>, class GroupContainers = default_group_container<Group, GList>, class SetContainers = default_set_container<Set>>
class groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >

Standard-Repräsentantenklasse, die für eine Vielzahl von GroupIndex -Instanzen verwendet werden kann.


Member Function Documentation

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
void groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::clear  ) 
 

Zurücksetzen des Repräsentantensystems.

Es werden alle invertierten Listen gelöscht; sämtlicher Speicher wird freigegeben und das Repräsentantensystem in seinen Urzustand zurücksgesetzt.

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
long groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::getGListIndex Set &  r  ) 
 

Liefert den Index der dem Repräsentanten r zugeordneten G-invertierte Liste.

Wenn r keine G-invertierte Liste zugeordnet ist, wird diese neu angelegt. Dies unterscheidet diese Methode von getGList(), wo NULL zurückgegeben wird, wenn dem übergebenen Repräsentanten noch keine Liste zugeordnet ist.

getGList() wird daher bei der Suche verwendet, getGListIndex() hingegen zum Einfügen, Updaten und Mergen von Indexen.

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
void groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::init  )  [virtual]
 

Initialisiert die Einfügephase des Index.

Die Datei stream muß eine von writeToFile() geschriebene Index-Datei sein. Es werden die Anfangspositionen der einzelnen G-inveriterten Listen ausgelesen, damit in operator[]() vollständig initialisierte GInvertedList-Objekte zurückgegeben werden können.

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
void groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::insert Set  m,
int  i
[virtual]
 

Vor Aufruf muß initInsertion() aufgerugen werden, damit eine Datei zum anhängen der neuen Daten zur Verfügung steht.

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
GList * groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::operator[] const int &  i  )  const
 

Liefert die i-te G-invertierte Liste.

Parameters:
i Index der invertierten Liste, wie z.B. von getGListIndex() zurückgegeben

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
GList * groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::operator[] const Set &  r  ) 
 

Liefert die dem Repräsentanten r zugeordnete G-invertierte Liste zu.

Wenn r keine G-invertierte Liste zugeordnet ist, wird NULL zurückgegeben. Dies unterscheidet diese Methode von operator[](Set), wo die Liste neu angelegt wird, wenn dem übergebenen Repräsentanten noch keine Liste zugeordnet ist.

getGList() wird daher bei der Suche verwendet, getGListIndex() hingegen zum Einfügen, Updaten und Mergen von Indexen.

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
void groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::remove int  fileindex  ) 
 

Löscht die Datei mit Namen filename aus allen G-invertierten Listen.

Es werden alle G-invertierten Listen durchsucht und dabei alle Einträge (x,fileindex) gelöscht.

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
void groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::writeStatistics FILE *  stream  ) 
 

Auswerten der Verteilung der G-invertierten Listen.

template<class Set, class Group, class GList, class GroupContainers, class SetContainers>
void groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::writeToFile std::ofstream &  ofs  )  [protected, virtual]
 

Schreibt den kompletten (ggf.

auch komprimierten) Index in die Datei stream.

Die Einfügephase wird nach Aufruf beendet, d.h., es können keine weiteren Daten in den Index eingefügt werden.


Member Data Documentation

template<class Set, class Group, class GList = GInvertedList<Group>, class GroupContainers = default_group_container<Group, GList>, class SetContainers = default_set_container<Set>>
Set* groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::gListRepresentatives [protected]
 

Repräsentanten der invertierten Listen.

gListRepresentatives[i] ist der Repräsentant der invertierten Liste gLists[i].

template<class Set, class Group, class GList = GInvertedList<Group>, class GroupContainers = default_group_container<Group, GList>, class SetContainers = default_set_container<Set>>
long groupindex::DefaultRepresentation< Set, Group, GList, GroupContainers, SetContainers >::increment_size [protected]
 

Anzahl G-inv.

Listen, die neu angelegt werden, wenn aktuelle Anzahl G-Inv. Listen nicht mehr ausreicht (d.h., wenn gListsCount==current_size)


The documentation for this class was generated from the following file:
The GroupIndex-Template-Library
Universität Bonn, Institut für Informatik III, 2001