GlobalObjects
|
IndexPool ist die Basisklasse für den RealIndexPool und den TransactionIndexPool für die einzelnen Transaktionen. Mehr ...
#include <GloIndexPool.h>
Klassen | |
class | DeletedObjIdTuple |
Klasse um gelöschte Objekte im IndexPool::SchemaIndex zu verwalten. Mehr ... | |
struct | IndexComparisionFilter |
Filter können Objekten vom Typ ObjectStrIndexIterator zugeordnet werden, welche das Iterieren durch einen ObjectStrIndex steuern. Mittels dieser Struktur kann ein Filter mittels "<", "<=", ">", ">=", "==" und "!=" definiert werden. Wenn z.B. m_sIndexFilterValue den Wert "123" und m_eComparisionOperator den Wert GREATER_EQUAL hat, werden nur alle Objekte mit dem Index größer/gleich "123" ausgefiltert. Mehr ... | |
struct | IndexFilter |
Filter können Objekten vom Typ ObjectStrIndexIterator zugeordnet werden, welche das Iterieren durch einen ObjectStrIndex steuern. Dieser Filter hat einen Indexfilter-Ausdruck in m_sIndexFilterValue. Mehr ... | |
struct | IndexRangeFilter |
Filter können Objekten vom Typ ObjectStrIndexIterator zugeordnet werden, welche das Iterieren durch einen ObjectStrIndex steuern. Mittels dieser Struktur kann ein Filter mittels Bereichsangabe definiert werden. Wenn z.B. m_sIndexFilterValue den Wert "123" und m_sIndexFilterEndValue den Wert "155" hat, werden alle Objekte mit dem Index kleiner "123" und größer "155" ausgefiltert. Es werden also nur, bei einer Abfrage, alle Objekte mit Index größer/gleich "123" und kleiner/gleich "155" geliefert. Mehr ... | |
class | ObjectStrIndex |
Verwaltet die einzelnen String-Indizes einer Klasse. Wenn dieses ein Unique-Index ist, sind die ObjStrIdTuple in einer Map, ansonsten in einer MultiMap. Dann können Indexe in einer MultiMap als reserviert eingefügt werden, dieses wird beim weiteren Einfügen berücksichtigt. Mehr ... | |
class | ObjectStrIndexIterator |
Hat einen Zeiger auf einen ObjectStrIndex und ermöglicht das iterieren durch diesen Index. Wird z.B. für AllSets instanziiert, damit diese unabhängig durch String-Indexe iterieren können. Mehr ... | |
class | ObjIdPosTuple |
Klasse um Objekte im IndexPool::TableObjIdIndex zu verwalten. Mehr ... | |
class | ObjStrIdTuple |
Klasse um Objekte im IndexPool::ObjectStrIndex zu verwalten. Mehr ... | |
class | SchemaIndex |
Ist die Indexverwalterklasse für ein Schema bzw. eine Datenbank. Mehr ... | |
class | TableObjIdIndex |
Verwaltet die Objekt-IDs (genutzte wie freigegebene) mit deren Position in den jeweiligen Tabellen. Mehr ... | |
class | TableObjIdIndexIterator |
Hat einen Zeiger auf einen TableObjIdIndex und ermöglicht das iterieren durch diesen Index. Wird z.B. für AllSets instanziiert, damit diese unabhängig durch Indexe iterieren können. Mehr ... | |
Öffentliche Methoden | |
IndexPool () | |
IndexPool (const IndexPool &rT) | |
virtual | ~IndexPool () |
void | deleteAllSchemaIndexValues () |
virtual int | getObjectStrIndexIterator (ObjectStrIndexIterator *&prObjectStrIndexIterators, const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName) const |
virtual int | getObjIdPosTuple (ObjIdPosTuple *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID) const |
virtual int | getTableObjIdIndexIterator (TableObjIdIndexIterator *&prTableIterators, const std::string &rsSchemaName, unsigned long ulClassID) const |
virtual int | insertDeletedObjID (const std::string &rsSchemaName, const ObjID &rDeletedObjId) |
virtual int | insertObjIdPosTuple (const std::string &rsSchemaName, unsigned long ulClassID, const ObjIdPosTuple &rIndexTuple) |
virtual int | insertObjStrIdTuple (const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple) |
virtual int | isIndexFree (const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID, const std::string &rsIndexName, const std::string &rsIndex) const |
virtual bool | isObjIdDeleted (const std::string &rsSchemaName, const ObjID &rObjID) const |
virtual int | isObjIdFree (const std::string &rsSchemaName, const ObjID &rObjID) const |
IndexPool & | operator= (const IndexPool &rT) |
int | releaseAllCommunicatorObjStrIdTuples (const std::string &rsSchemaName, const NUM_PTR ipReservingComunicator) |
int | releaseObjStrIdTuple (const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const NUM_PTR ipReservingComunicatorTrx) |
virtual int | removeObjId (const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID) |
virtual int | removeObjStrIdTuple (const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjID &rObjID, NUM_PTR ipReservingComunicatorTrx=0) |
int | reserveObjStrIdTuple (const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple) |
Geschützte Methoden | |
void | _deleteAllSchemaIndexValues () |
virtual bool | _existsSchemaIndex (const std::string &rsSchemaName) const |
virtual int | _getFreeObjIDPos (std::streampos &rPos, const std::string &rsSchemaName, unsigned long ulClassID) const |
virtual int | _getObjectStrIndex (ObjectStrIndex *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName) const |
virtual int | _getObjectStrIndexIterator (ObjectStrIndexIterator *&prObjStrIterators, const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName) const |
virtual int | _getObjIdPosTuple (ObjIdPosTuple *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID) const |
virtual int | _getSchemaIndex (SchemaIndex *&prRetVal, const std::string &rsSchemaName) const |
virtual int | _getTableObjIdIndex (TableObjIdIndex *&prRetVal, const std::string &rsSchemaName, unsigned long ulClassID) const |
virtual int | _getTableObjIdIndexIterator (TableObjIdIndexIterator *&prTableIterators, const std::string &rsSchemaName, unsigned long ulClassID) const |
virtual int | _insertDeletedObjID (const std::string &rsSchemaName, const ObjID &rDeletedObjId) |
virtual int | _insertFreeObjIDPos (const std::string &rsSchemaName, unsigned long ulClassID, std::streampos Pos) |
virtual int | _insertObjIdPosTuple (const std::string &rsSchemaName, unsigned long ulClassID, const ObjIdPosTuple &rIndexTuple) |
virtual int | _insertObjStrIdTuple (const std::string &rsSchemaName, unsigned long ulClassID, const std::string &rsIndexName, const ObjStrIdTuple &rIndexTuple) |
virtual bool | _isObjIdDeleted (const std::string &rsSchemaName, const ObjID &rObjID) const |
virtual int | _isObjIdFree (const std::string &rsSchemaName, unsigned long ulClassID, const ObjID &rObjID) const |
virtual int | _makeObjectStrIndex (const std::string &rsSchemaName, const std::string &rsTablePathName, unsigned long ulClassID, const std::string &rsIndexName, bool bUnique) |
virtual int | _makeTableObjIdIndex (const std::string &rsSchemaName, const std::string &rsTablePathName, unsigned long ulClassID) |
virtual int | _removeFreeObjIDPos (const std::string &rsSchemaName, unsigned long ulClassID, std::streampos Pos) |
int | _removeSchemaIndex (const std::string &rsSchemaName) |
void | copyMapFrom (const IndexPool &rT) |
Geschützte Attribute | |
eut::CriticalSection | m_LocalCriticalSection |
std::map< std::string, SchemaIndex *, std::less< std::string > > | m_SchemaIndexMap |
IndexPool ist die Basisklasse für den RealIndexPool und den TransactionIndexPool für die einzelnen Transaktionen.
Um das Suchen von Datensätzen in den Tabellen zu beschleunigen, wird die Objekt-ID mit der Tabellen-Position in einem TableObjIdIndex indiziert. Es wird zusätzlich ein Index von Tabellen-Positionen von gelöschten Datensätzen geführt. Diese beiden Indizes werden beim Öffnen einer Datenbank in einen RealIndexPool geladen und beim Schliessen wieder gespeichert.
Der RealIndexPool ist der Index aus der Datenbank, also real. Änderungen in der Datenbank, welche irgendeinen Index betreffen werden im RealIndexPool dokumentiert.
Wenn eine Transaktion begonnen wird, wird ein TransactionIndexPool als Kopie des RealIndexPool erstellt und gültig für die jeweilige Transaktion verwaltet.
Das bedeutet:
Wenn in der Transaktion ein Objekt eingefügt, geändert oder gelöscht wird, und der TableObjIdIndex betroffen ist, wird der Index nur im TransactionIndexPool geändert.
Wenn ausserhalb einer Transaktion ein Objekt geändert bzw. gelöscht wird, werden in allen Transaktionen der jeweilige TransactionIndexPool angepasst, wenn das Objekt NICHT in der Transaktion ist.
Wenn ausserhalb einer Transaktion ein Objekt eingefügt wird, werden in allen Transaktionen die jeweiligen Objekte vom Typ TransactionIndexPool angepasst.
Wenn ein Client nach einem Objekt fragt, wird zunächst geprüft, ob der Client in einer Transaktion ist. Dann wird dort der TransactionIndexPool gefragt; ansonsten der RealIndexPool.
Aufbau:
Es wird für jedes Schema ein SchemaIndex aufgebaut, welcher aus den Informationen aus diesem den Index aus den Tabellen aufbaut.
Schematischer Aufbau:
glo::IndexPool::IndexPool | ( | ) |
Standard-Konstruktor.
glo::IndexPool::IndexPool | ( | const IndexPool & | rT | ) |
Copy-Konstruktor.
[in] | rT | Von diesem Objekt werden die Daten übernommen. |
|
virtual |
Destruktor.
|
protected |
Entfernt alle Objekte aus m_SchemaIndexMap und aus dem Speicher.
|
protectedvirtual |
Prüft, ob ein SchemaIndex mit einer bestimmten Bezeichnung in der m_SchemaIndexMap existiert.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu prüfenden SchemaIndex. |
|
protectedvirtual |
Liefert eine freie Tabellen-Position in einem TableObjIdIndex mit übergebener Klassen-ID in einem SchemaIndex.
[in,out] | rPos | Die freie Tabellen-Position, wenn eine vorhanden war. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
|
protectedvirtual |
Liefert einen ObjectStrIndex einer bestimmten Klasse mit einer bestimmten Bezeichnung aus einen bestimmten SchemaIndex.
[in,out] | prRetVal | Der StringIndex, wenn vorhanden. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des liefernden SchemaIndex. |
[in] | ulClassID | Die Klassen-ID. |
[in] | rsIndexName | Die Indexbezeichnung. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
|
protectedvirtual |
Liefert den ObjectStrIndexIterator eines bestimmten ObjectStrIndex einer bestimmten Datenbank.
[in,out] | prObjStrIterators | Der IndexIterator, wenn vorhanden. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu liefernden SchemaIndex. |
[in] | ulClassID | Die Klassen-ID des TableObjIdIndex. |
[in] | rsIndexName | Die Indexbezeichnung. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
|
protectedvirtual |
Liefert eine Objekt-ID mit ihrer Tabellen-Position aus dem TableObjIdIndex mit übergebener Klassen-ID in einem SchemaIndex mit einer bestimmten Objekt-ID.
[in,out] | prRetVal | Wenn vorhanden, ein Zeiger auf eine Kopie der Objekt-ID mit der Tabellen-Position. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | rObjID | Die Objekt-ID des zu liefernden Eintrags. |
|
protectedvirtual |
Liefert einen SchemaIndex mit einer bestimmten Bezeichnung aus der m_SchemaIndexMap.
[in,out] | prRetVal | Der SchemaIndex, wenn vorhanden. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu liefernden SchemaIndex. |
|
protectedvirtual |
Liefert einen TableObjIdIndex einer bestimmten Klasse aus einen bestimmten SchemaIndex.
[in,out] | prRetVal | Der Index, wenn vorhanden. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des liefernden SchemaIndex. |
[in] | ulClassID | Die Klassen-ID. |
|
protectedvirtual |
Liefert den TableObjIdIndexIterator eines bestimmten TableObjIdIndex einer bestimmten Datenbank.
[in,out] | prTableIterators | Der IndexIterator, wenn vorhanden. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu liefernden SchemaIndex. |
[in] | ulClassID | Die Klassen-ID des TableObjIdIndex. |
|
protectedvirtual |
Registriert übergeben Objekt-ID für einen SchemaIndex als gelöscht.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | rDeletedObjId | Die als gelöscht zu registrierende Objekt-ID. |
|
protectedvirtual |
Regsitriert eine freie Tabellen-Position in einem TableObjIdIndex mit übergebener Klassen-ID in einem SchemaIndex.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | Pos | Die als 'frei' zu registrierende Tabellen-Position. |
|
protectedvirtual |
Fügt eine Objekt-ID mit der Tabellen-Position in einen TableObjIdIndex in einem SchemaIndex ein.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | rIndexTuple | Die einzufügende Objekt-ID mit der Tabellen-Position. |
|
protectedvirtual |
Fügt einen StringIndex in einen ObjectStrIndex in einem SchemaIndex ein.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den ObjectStrIndex zu identifizieren. |
[in] | rsIndexName | Die Bezeichnung des ObjectStrIndex. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
[in] | rIndexTuple | Der einzufügende Index. |
|
protectedvirtual |
Prüft ob eine Objekt-ID in einem SchemaIndex als gelöscht geführt wird.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | rObjID | Die zu prüfende Objekt-ID. |
|
protectedvirtual |
Prüft eine Objekt-ID, ob diese schon in einem TableObjIdIndex in einem SchemaIndex verwaltet wird.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | rObjID | Die zu prüfende Objekt-ID. |
|
protectedvirtual |
Gerneriert einen ObjectStrIndex mit einer Bezeichnung, für eine Klasse mit einer bestimmten Klassen-ID für einen bestimmten SchemaIndex. Sollte der SchemaIndex noch nicht existieren, wird auch dieser generiert.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase"). |
[in] | rsTablePathName | Die, für den ObjectStrIndex notwendige, vollständige Verzeichnisbezeichnung, in dem die Tabellen zu finden sind wie z.B. "C:/Pfad/Data/". |
[in] | ulClassID | Die Klassen-ID der verwalteten Indexe. |
[in] | rsIndexName | Die Indexbezeichnung. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
[in] | bUnique | Wenn true, dann handelt es sich um einen eindeutigen Index (jeder Eintrag kann nur einmal vorhanden sein), ansonsten sind mehrere gleiche Einträge möglich. |
|
protectedvirtual |
Gerneriert einen TableObjIdIndex für eine Klasse mit einer bestimmten Klassen-ID für einen bestimmten SchemaIndex. Sollte der SchemaIndex noch nicht existieren, wird auch dieser generiert.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase"). |
[in] | rsTablePathName | Die, für den TableObjIdIndex notwendige, vollständige Verzeichnisbezeichnung, in dem die Tabellen zu finden sind wie z.B. "C:/Pfad/Data/". |
[in] | ulClassID | Die Klassen-ID der verwalteten Indexe. |
|
protectedvirtual |
Entfernt eine freie Tabellen-Position in einem TableObjIdIndex mit übergebener Klassen-ID in einem SchemaIndex.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | Pos | Die entfernte Tabellen-Position. |
|
protected |
Entfernt den SchemaIndex mit übergebener Schemabezeichnung aus m_SchemaIndexMap.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu entfernenden SchemaIndex. |
|
protected |
Entfernt alle Objekte aus m_SchemaIndexMap und aus dem Speicher. Dann werden alle Elemente der gleichen Liste des übergebenen IndexPool kopiert.
Wird vom operator= genutzt.
[in] | rT | Der IndexPool, dessen Indexe kopiert werden sollen. |
void glo::IndexPool::deleteAllSchemaIndexValues | ( | ) |
Entfernt alle Objekte aus m_SchemaIndexMap und aus dem Speicher.
|
virtual |
Liefert den ObjectStrIndexIterator eines bestimmten ObjectStrIndex einer bestimmten Datenbank.
[in,out] | prObjectStrIndexIterators | Der Iterator, wenn vorhanden. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu liefernden SchemaIndex. |
[in] | ulClassID | Die Klassen-ID des TableObjIdIndex. |
[in] | rsIndexName | Die Bezeichnung des zu prüfenden Index. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
|
virtual |
Liefert eine Objekt-ID mit ihrer Tabellen-Position aus dem TableObjIdIndex mit übergebener Klassen-ID in einem SchemaIndex mit einer bestimmten Objekt-ID.
[in,out] | prRetVal | Wenn vorhanden, ein Zeiger auf eine Kopie der Objekt-ID mit der Tabellen-Position. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | rObjID | Die Objekt-ID des zu liefernden Eintrags. |
|
virtual |
Liefert den TableObjIdIndexIterator eines bestimmten TableObjIdIndex einer bestimmten Datenbank.
[in,out] | prTableIterators | Der Iterator, wenn vorhanden. |
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu liefernden SchemaIndex. |
[in] | ulClassID | Die Klassen-ID des TableObjIdIndex. |
|
virtual |
Registriert die übergebene Objekt-ID für einen SchemaIndex als gelöscht.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | rDeletedObjId | Die als gelöscht zu registrierende Objekt-ID. |
|
virtual |
Fügt eine Objekt-ID mit der Tabellen-Position in einen TableObjIdIndex in einem SchemaIndex ein.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | rIndexTuple | Die einzufügende Objekt-ID mit der Tabellen-Position. |
|
virtual |
Fügt einen StringIndex in einen ObjectStrIndex in einem SchemaIndex ein.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den ObjectStrIndex zu identifizieren. |
[in] | rsIndexName | Die Bezeichnung des ObjectStrIndex. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
[in] | rIndexTuple | Der einzufügende Index. |
|
virtual |
Prüft, ob ein IndexString noch für einen bestimmten ObjectStrIndex in einem SchemaIndex frei ist.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den ObjectStrIndex zu identifizieren. |
[in] | rObjID | Die Objekt-ID, um den ObjectStrIndex zu identifizieren. |
[in] | rsIndexName | Die Bezeichnung des zu prüfenden Index. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
[in] | rsIndex | Der zu überprüfende Index. |
|
virtual |
Prüft ob eine Objekt-ID in einem SchemaIndex als gelöscht gekennzeichnet ist.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | rObjID | Die zu prüfende Objekt-ID. |
|
virtual |
Prüft eine Objekt-ID, ob diese schon in einem TableObjIdIndex in einem SchemaIndex verwaltet wird.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | rObjID | Die zu prüfende Objekt-ID. |
Zuweisungsoperator.
[in] | rT | Von diesem Objekt werden die Daten übernommen. |
int glo::IndexPool::releaseAllCommunicatorObjStrIdTuples | ( | const std::string & | rsSchemaName, |
const NUM_PTR | ipReservingComunicator ) |
Gibt alle Unique-StringIndex in einen ObjectStrIndex in einem SchemaIndex frei, welche vom übergebenen Kommunikator reserviert wurden.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ipReservingComunicator | Die auf NUM_PTR gecastete Adresse des Kommunikators, der den Index reserviert hat. |
eut::ErrorNException | Wenn ipReservingComunicator == 0 ist, wird eine Exception geworfen. |
int glo::IndexPool::releaseObjStrIdTuple | ( | const std::string & | rsSchemaName, |
unsigned long | ulClassID, | ||
const std::string & | rsIndexName, | ||
const NUM_PTR | ipReservingComunicatorTrx ) |
Gibt einen StringIndex in einen ObjectStrIndex in einem SchemaIndex, wenn dieser ein Unique-Index ist, frei.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den ObjectStrIndex zu identifizieren. |
[in] | rsIndexName | Die Bezeichnung des ObjectStrIndex. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
[in] | ipReservingComunicatorTrx | Der Transaktionsschritt, für den die Reservierung angefordert wurde. |
eut::ErrorNException | Wenn ipReservingComunicatorTrx == 0 ist, wird eine Exception geworfen. |
|
virtual |
Entfernt den Eintrag mit übergebener Objekt-ID aus dem TableObjIdIndex mit übergebener Klassen-ID in einem SchemaIndex.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den TableObjIdIndex zu identifizieren. |
[in] | rObjID | Die zu entfernende Objekt-ID. |
|
virtual |
Entfernt String-Index eines Objektes mit übergebener Bezeichnung aus dem ObjectStrIndex mit übergebener Klassen-ID in einem SchemaIndex.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den ObjectStrIndex zu identifizieren. |
[in] | rsIndexName | Die Bezeichnung des ObjectStrIndex. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
[in] | rObjID | Die Objekt-ID des zu entfernenden Indexes. |
[in] | ipReservingComunicatorTrx | Die auf NUM_PTR gecastete Adresse eines Communicator's, in dessen Transaktion der Index ggf. reserviert wurde. Wenn diese gesetzt, wird nur ein reservierter Index gelöscht. |
int glo::IndexPool::reserveObjStrIdTuple | ( | const std::string & | rsSchemaName, |
unsigned long | ulClassID, | ||
const std::string & | rsIndexName, | ||
const ObjStrIdTuple & | rIndexTuple ) |
Reserviert einen StringIndex in einen ObjectStrIndex in einem SchemaIndex, wenn dieser ein Unique-Index ist.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") um den SchemaIndex zu identifizieren. |
[in] | ulClassID | Die Klassen-ID, um den ObjectStrIndex zu identifizieren. |
[in] | rsIndexName | Die Bezeichnung des ObjectStrIndex. Wenn z.B. im Schema "[MyClassName.Index.IDX_MyIndexName]", dann "IDX_MyIndexName". |
[in] | rIndexTuple | Der zu reservierende Index. |
eut::ErrorNException | Wenn ObjStrIdTuple::m_ipReservingComunicatorTrx im Parameter rIndexTuple nicht gesetzt ist, wird eine Exception geworfen. |
|
protected |
Um einen Thread-sicheren Zugriff auf die Elemente des IndexPool und Unterklassen zu gewährleisten, wird über diese lokale CriticalSection der Zugriff synchronisiert.
|
protected |
Für jede geöffnete Datenbank gibt es einen SchemaIndex.