GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::IndexPool::TableObjIdIndex Klassenreferenz

Verwaltet die Objekt-IDs (genutzte wie freigegebene) mit deren Position in den jeweiligen Tabellen. Mehr ...

#include <GloIndexPool.h>

Öffentliche Methoden

 TableObjIdIndex (const std::string &rsPathName, unsigned long ulClassID)
 
 TableObjIdIndex (const TableObjIdIndex &rT)
 
virtual ~TableObjIdIndex ()
 
void deleteAllIndexValues ()
 
unsigned long getClassID () const
 
int getFreeObjIDPos (std::streampos &rPos) const
 
const std::map< std::streampos, std::streampos, std::less< std::streampos > > & getFreeObjIDPosMapRef () const
 
const std::map< ObjID, IndexPool::ObjIdPosTuple *, std::less< ObjID > > & getObjIDIndexMapRef () const
 
int getObjIdPosTuple (ObjIdPosTuple *&prRetVal, const ObjID &rObjID) const
 
const std::string & getPathName () const
 
int insertFreeObjIDPos (std::streampos Pos)
 
int insertObjIdPosTuple (const ObjIdPosTuple &rIndexTuple)
 
bool isObjIdFree (const ObjID &rObjID) const
 
IndexPool::TableObjIdIndexoperator= (const TableObjIdIndex &rT)
 
void removeAllFreeObjIDPos ()
 
int removeFreeObjIDPos (std::streampos Pos)
 
int removeObjId (const ObjID &rObjID)
 

Geschützte Methoden

void copyMapFrom (const TableObjIdIndex &rT)
 

Private Methoden

 TableObjIdIndex ()
 

Private Attribute

std::map< std::streampos, std::streampos, std::less< std::streampos > > m_FreeObjIDPosMap
 
std::map< ObjID, ObjIdPosTuple *, std::less< ObjID > > m_ObjIDIndexMap
 
std::string m_strPathName
 
unsigned long m_ulClassID
 

Ausführliche Beschreibung

Verwaltet die Objekt-IDs (genutzte wie freigegebene) mit deren Position in den jeweiligen Tabellen.

Es werden die Objekt-IDs einer Klasse und ihrer Unterklassen verwaltet.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ TableObjIdIndex() [1/3]

glo::IndexPool::TableObjIdIndex::TableObjIdIndex ( )
private

Der Standard-Konstruktor steht nicht zur Verfügung.

◆ TableObjIdIndex() [2/3]

glo::IndexPool::TableObjIdIndex::TableObjIdIndex ( const std::string & rsPathName,
unsigned long ulClassID )

Konstruktor mit Parameterübergabe.

Parameter
[in]rsPathNameDie vollständige Verzeichnisbezeichnung, in dem die Daten zu finden sind wie z.B. "C:/Pfad/Data/".
[in]ulClassIDDie Klassen-ID der verwalteten ObjIdPosTuple.

◆ TableObjIdIndex() [3/3]

glo::IndexPool::TableObjIdIndex::TableObjIdIndex ( const TableObjIdIndex & rT)

Copy-Konstruktor.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ ~TableObjIdIndex()

virtual glo::IndexPool::TableObjIdIndex::~TableObjIdIndex ( )
virtual

Destruktor.

Dokumentation der Elementfunktionen

◆ copyMapFrom()

void glo::IndexPool::TableObjIdIndex::copyMapFrom ( const TableObjIdIndex & rT)
protected

Entfernt und löscht alle Elemente aus der Map, welche die gespeicherten Objekt-IDs und die Tabellen-Position verwaltet. Dann werden alle Elemente aus der korrespondierenden Map des rT übernommen.

Parameter
[in]rTDer Tabellen-Index, dessen Elemente aus der Map, welche die gespeicherten Objekt-IDs und die Tabellen-Position verwaltet, kopiert werden sollen.

◆ deleteAllIndexValues()

void glo::IndexPool::TableObjIdIndex::deleteAllIndexValues ( )

Entfernt und löscht alle Elemente aus der Map, welche die gespeicherten Objekt-IDs mit deren Tabellen-Position verwaltet.

◆ getClassID()

unsigned long glo::IndexPool::TableObjIdIndex::getClassID ( ) const

Liefert die Klassen-ID des verwalteten ObjIdPosTuple und des Index von Tabellen-Positionen von gelöschten Datensätzen.

Rückgabe
Die Klassen-ID.

◆ getFreeObjIDPos()

int glo::IndexPool::TableObjIdIndex::getFreeObjIDPos ( std::streampos & rPos) const

Liefert eine freie Tabellen-Position aus seine Map, welche die freien Tabellen-Position verwaltet.

Parameter
[in,out]rPosDie freie Tabellen-Position, wenn eine vorhanden war.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getFreeObjIDPosMapRef()

const std::map< std::streampos, std::streampos, std::less< std::streampos > > & glo::IndexPool::TableObjIdIndex::getFreeObjIDPosMapRef ( ) const

Liefert eine Referenz auf die Map welche die freien Zeilen (Startposition in der Datei, da wo die Objekt-ID == 0.0.0 ist) verwaltet.

Rückgabe
Die Referenz auf die Map.

◆ getObjIDIndexMapRef()

const std::map< ObjID, IndexPool::ObjIdPosTuple *, std::less< ObjID > > & glo::IndexPool::TableObjIdIndex::getObjIDIndexMapRef ( ) const

Liefert eine Referenz auf die Map, welche die gespeicherten Objekt-IDs und deren Tabellen-Position verwaltet.

Rückgabe
Die Referenz auf die Map.

◆ getObjIdPosTuple()

int glo::IndexPool::TableObjIdIndex::getObjIdPosTuple ( ObjIdPosTuple *& prRetVal,
const ObjID & rObjID ) const

Liefert eine Objekt-ID mit der Tabellen-Position, wo der korrespondierende Datensatzes gespeichert ist, aus seiner Map, welche die gespeicherten Objekt-IDs und die Tabellen-Position verwaltet, mit übergebener Objekt-ID.

Parameter
[in,out]prRetValWenn vorhanden, ein Zeiger auf eine Kopie der Objekt-ID mit der Tabellen-Position.
[in]rObjIDDie Objekt-ID des zu liefernden Eintrags.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Die aufrufende Instanz muss das gelieferte Objekt aus dem Speicher entfernen.

◆ getPathName()

const std::string & glo::IndexPool::TableObjIdIndex::getPathName ( ) const

Liefert die vollständige Verzeichnisbezeichnung, in dem die Daten zu finden sind.

Rückgabe
Die vollständige Verzeichnisbezeichnung wie z.B. "C:/Pfad/Data/".

◆ insertFreeObjIDPos()

int glo::IndexPool::TableObjIdIndex::insertFreeObjIDPos ( std::streampos Pos)

Fügt eine freie Tabellen-Position in seine Map, welche die freien Tabellen-Position verwaltet) ein.

Parameter
[in]PosDie einzufügende Tabellen-Position.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ insertObjIdPosTuple()

int glo::IndexPool::TableObjIdIndex::insertObjIdPosTuple ( const ObjIdPosTuple & rIndexTuple)

Fügt eine Objekt-ID mit der Tabellen-Position, wo der korrespondierende Datensatzes gespeichert ist, in seine Map, welche die gespeicherten Objekt-IDs und die Tabellen-Position verwaltet, ein.

Parameter
[in]rIndexTupleDie einzufügende Objekt-ID mit der Tabellen-Position.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ isObjIdFree()

bool glo::IndexPool::TableObjIdIndex::isObjIdFree ( const ObjID & rObjID) const

Prüft eine Objekt-ID, ob diese schon verwaltet wird.

Parameter
[in]rObjIDDie zu prüfende Objekt-ID.
Rückgabe
Liefert true, wenn rObjID nicht verwaltet wird, ansonsten false.

◆ operator=()

IndexPool::TableObjIdIndex & glo::IndexPool::TableObjIdIndex::operator= ( const TableObjIdIndex & rT)

Zuweisungsoperator.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ removeAllFreeObjIDPos()

void glo::IndexPool::TableObjIdIndex::removeAllFreeObjIDPos ( )

Entfernt alle Elemente aus der Map, welche die freien Zeilen (Startposition in der Datei, da wo die Objekt-ID == 0.0.0 ist) verwaltet.

◆ removeFreeObjIDPos()

int glo::IndexPool::TableObjIdIndex::removeFreeObjIDPos ( std::streampos Pos)

Entfernt eine freie Tabellen-Position aus seine Map, welche die freien Tabellen-Position verwaltet.

Parameter
[in]PosDie entfernte Tabellen-Position.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ removeObjId()

int glo::IndexPool::TableObjIdIndex::removeObjId ( const ObjID & rObjID)

Entfernt eine Objekt-ID mit der Tabellen-Position, wo der korrespondierende Datensatzes gespeichert ist, aus seiner Map, welche die gespeicherten Objekt-IDs und die Tabellen-Position verwaltet.

Parameter
[in]rObjIDDie Objekt-ID des zu entfernenden Eintrags.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Dokumentation der Datenelemente

◆ m_FreeObjIDPosMap

std::map< std::streampos, std::streampos , std::less< std::streampos > > glo::IndexPool::TableObjIdIndex::m_FreeObjIDPosMap
private

Eine Map, welche die freien Zeilen (Startposition in der Datei, da wo die Objekt-ID == 0.0.0 ist) verwaltet.

◆ m_ObjIDIndexMap

std::map< ObjID, ObjIdPosTuple *, std::less< ObjID > > glo::IndexPool::TableObjIdIndex::m_ObjIDIndexMap
private

Eine Map, welche die gespeicherten Objekt-IDs und deren Tabellen-Positionen verwaltet.

◆ m_strPathName

std::string glo::IndexPool::TableObjIdIndex::m_strPathName
private

Die vollständige Verzeichnisbezeichnung, in dem die Tabellen zu finden sind wie z.B. "C:/Pfad/Data/".

◆ m_ulClassID

unsigned long glo::IndexPool::TableObjIdIndex::m_ulClassID
private

Die Klassen-ID des verwalteten ObjIdPosTuple und des Index von Tabellen-Positionen von gelöschten Datensätzen.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: