GlobalObjects
|
Der reale Index im Gegensatz zum TransactionIndexPool, welcher für jede Transaktion erstellt wird. Mehr ...
#include <GloRealIndexPool.h>
Öffentliche Methoden | |
RealIndexPool () | |
RealIndexPool (const RealIndexPool &rT) | |
virtual | ~RealIndexPool () |
virtual bool | existsSchemaIndex (const std::string &rsSchemaName) const |
virtual int | getFreeObjIDPos (std::streampos &rPos, const std::string &rsSchemaName, unsigned long ulClassID) const |
std::size_t | getNumberOfClassInfos (const SchemaInterface &rSchemaInterface) const |
std::size_t | getNumberOfIndexes (const SchemaInterface &rSchemaInterface) const |
virtual int | insertFreeObjIDPos (const std::string &rsSchemaName, unsigned long ulClassID, std::streampos Pos) |
void | notifyIndexReadWrite (TdWatchNotifyMode iMode, const std::string &rsSchemaName, const ObjID &rObjID, int iFraction, int iActions) |
RealIndexPool & | operator= (const RealIndexPool &rT) |
int | readIndexes (const SchemaInterface &rSchemaInterface) |
int | reindex (const SchemaInterface &rSchemaInterface) |
int | reindex (const SchemaInterface &rSchemaInterface, int iActions) |
int | reindexObjIDIndexes (const SchemaInterface &rSchemaInterface) |
int | reindexObjStrIndexes (const SchemaInterface &rSchemaInterface) |
virtual int | removeFreeObjIDPos (const std::string &rsSchemaName, unsigned long ulClassID, std::streampos Pos) |
int | removeSchemaIndex (const std::string &rsSchemaName) |
void | setWatchNotifyManager (WatchNotifyManager *pWatchNotifyManager) |
int | writeIndexes (const SchemaInterface &rSchemaInterface) |
int | writeIndexes (const SchemaInterface &rSchemaInterface, int iActions) |
int | writeObjIDIndexes (const SchemaInterface &rSchemaInterface) const |
int | writeObjStrIndexes (const SchemaInterface &rSchemaInterface) const |
Öffentliche Methoden geerbt von glo::IndexPool | |
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 | |
int | _createObjIDIndexFromTable (const SchemaInterface &rSchemaInterface, const ClassInfoAttribute &rClassInfoAttribute) |
int | _createObjStrIndexFromTables (const SchemaInterface &rSchemaInterface, const ClassInfoIndex &rClassInfoIndex) |
int | _getIndexString (std::string &rsRetValIndex, const std::vector< eut::LanguageFunctions::EnLanguageKey > &rLanguageKeys, bool bCaseSensitive, const SchemaInterface &rSchemaInterface, unsigned long ulClassID, const ObjID &rObjID, const ClassInfoIndex::IndexAttributeItem &rIndexAttributeItem) |
int | _readObjIDIndexes (const SchemaInterface &rSchemaInterface) |
int | _readObjStrIndexes (const SchemaInterface &rSchemaInterface) |
int | _reindexObjIDIndexes (const SchemaInterface &rSchemaInterface) |
int | _reindexObjStrIndexes (const SchemaInterface &rSchemaInterface) |
int | _writeObjIDIndexes (const SchemaIndex &rSchemaIndex) const |
int | _writeObjIDIndexes (const SchemaInterface &rSchemaInterface) const |
int | _writeObjStrIndexes (const SchemaIndex &rSchemaIndex) const |
int | _writeObjStrIndexes (const SchemaInterface &rSchemaInterface) const |
Geschützte Methoden geerbt von glo::IndexPool | |
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) |
Private Attribute | |
int | m_iActions |
WatchNotifyManager * | m_pWatchNotifyManager |
Weitere Geerbte Elemente | |
Geschützte Attribute geerbt von glo::IndexPool | |
eut::CriticalSection | m_LocalCriticalSection |
std::map< std::string, SchemaIndex *, std::less< std::string > > | m_SchemaIndexMap |
Der reale Index im Gegensatz zum TransactionIndexPool, welcher für jede Transaktion erstellt wird.
glo::RealIndexPool::RealIndexPool | ( | ) |
Standard-Konstruktor.
glo::RealIndexPool::RealIndexPool | ( | const RealIndexPool & | rT | ) |
Copy-Konstruktor.
[in] | rT | Von diesem Objekt werden die Daten übernommen. |
|
virtual |
Destruktor.
|
protected |
Generiert einen TableObjIdIndex aus den Daten einer Objekt-Tabelle.
[in] | rSchemaInterface | Für Schemaname und der Pfad zu den Tabellen. |
[in] | rClassInfoAttribute | Für Tabellenname und ClassID. |
|
protected |
Generiert einen ObjectStrIndex aus den Daten einer Objekt-Tabelle.
[in] | rSchemaInterface | Für den Schemanamen und der Pfad zu den Tabellen. |
[in] | rClassInfoIndex | Für die Tabellenbezeichnung und die Klassen-ID. |
|
protected |
Liefert die Index-Zeichenfolge aus übergebener Klassen-ID, Objekt-ID und ClassInfoIndex::IndexAttributeItem.
Die übergeben Klassen-ID übermittelt, in welcher Tabelle ein Datensatz mit übergebener ObjID zu finden ist.
Über die erste AttributeID in ClassInfoIndex::IndexAttributeItem wird das Datenfeld ermittelt. Wenn es eine zweite AttributeID in ClassInfoIndex::IndexAttributeItem gibt, muss das Datenfeld eine Objekt-ID beinhalten (ansonsten Fehler) und es wird selbige Methode rekursiv aufgerufen.
Ansonsten wird der Eintrag in dem Datenfeld als String in der übergebenen Länge und Form zurückgeliefert.
[in,out] | rsRetValIndex | Der resultierende String. |
[in] | rLanguageKeys | Die Sprachschlüssel in einem Vector. |
[in] | bCaseSensitive | Wenn false, werden alle Zeichen im rsRetValIndex in Großbuchstaben umgewandelt. |
[in] | rSchemaInterface | Für den Schemanamen und der Pfad zu den Tabellen. |
[in] | ulClassID | Die Klassen-ID gibt an, in welcher Tabelle gesucht werden soll. |
[in] | rObjID | Die ObjektID des Objektes. |
[in] | rIndexAttributeItem | Die Information, welches Attribut genommen werden soll. |
|
protected |
Liest alle Objekte vom Typ TableObjIdIndex einer Datenbank aus dem Dateisystem (ODX- und FDX-Dateien) in den Speicher. Es werden die gelesenen Dateien gelöscht, damit festgestellt werden kann, ob nach einem Abstrurz der GlobalObjects-Anwendung der aktuelle Index geschrieben wurde.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
protected |
Liest alle Objekte vom Typ ObjectStrIndex einer Datenbank aus dem Dateisystem (SDX-Dateien) in den Speicher. Es werden die gelesenen Dateien gelöscht, damit festgestellt werden kann, ob nach einem Abstrurz der GlobalObjects-Anwendung der aktuelle Index geschrieben wurde.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
protected |
Reindiziert alle Objekte vom Typ TableObjIdIndex einer Datenbank in den Speicher.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
protected |
Reindiziert alle Objekte vom Typ ObjectStrIndex einer Datenbank in den Speicher.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
protected |
Schreibt alle Objekte vom Typ TableObjIdIndex eines SchemaIndex aus dem Speicher in das Dateisystem (ODX- und FDX-Dateien).
[in] | rSchemaIndex | Der SchemaIndex, dessen TableObjIdIndex geschrieben werden sollen. |
|
protected |
Schreibt alle Objekte vom Typ TableObjIdIndex einer Datenbank aus dem Speicher in das Dateisystem (ODX- und FDX-Dateien).
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
protected |
Schreibt alle Objekte vom Typ ObjectStrIndex eines SchemaIndex aus dem Speicher in das Dateisystem (SDX-Dateien).
[in] | rSchemaIndex | Der SchemaIndex, dessen ObjectStrIndex geschrieben werden sollen. |
|
protected |
Schreibt alle Objekte vom Typ ObjectStrIndex einer Datenbank aus dem Speicher in das Dateisystem (SDX-Dateien).
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
virtual |
Prüft, ob ein SchemaIndex mit der übergebenen Bezeichnung existiert.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu prüfenden SchemaIndex. |
|
virtual |
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. |
std::size_t glo::RealIndexPool::getNumberOfClassInfos | ( | const SchemaInterface & | rSchemaInterface | ) | const |
Liefert die Anzahl der Klasseninformationen des übergebenen Schemas. Wird hier genutzt, um die Anzahl der ObjektID-Indizierungsaktionen zu ermitteln. Pro Klasseninformationen werden zwei ObjID-Indexe (Reale und Freigegebene) geführt.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
std::size_t glo::RealIndexPool::getNumberOfIndexes | ( | const SchemaInterface & | rSchemaInterface | ) | const |
Liefert die Anzahl der String-Indexe aller Klassen des übergebenen Schemas, die indiziert werden köennen.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
virtual |
Registriert 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. |
void glo::RealIndexPool::notifyIndexReadWrite | ( | TdWatchNotifyMode | iMode, |
const std::string & | rsSchemaName, | ||
const ObjID & | rObjID, | ||
int | iFraction, | ||
int | iActions ) |
Generiert einen Benachrichtigungsauftrag und übergibt diesen dem referenzierten WatchNotifyManager in m_pWatchNotifyManager.
[in] | iMode | Der Überwachungsmodus. |
[in] | rsSchemaName | Die Schemabezeichnung für die WatchNotifyManager::NotifyIndexReadWriteInfo::m_sSchemaName. |
[in] | rObjID | Die Objekt-ID für die WatchNotifyManager::NotifyIndexReadWriteInfo::m_ObjID. |
[in] | iFraction | Der Fortschritt. |
[in] | iActions | Die zu erwartende Anzahl der Aktionen. |
RealIndexPool & glo::RealIndexPool::operator= | ( | const RealIndexPool & | rT | ) |
Zuweisungsoperator.
[in] | rT | Von diesem Objekt werden die Daten übernommen. |
int glo::RealIndexPool::readIndexes | ( | const SchemaInterface & | rSchemaInterface | ) |
Liest alle Indexe einer Datenbank aus den Index-Dateien ein.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
int glo::RealIndexPool::reindex | ( | const SchemaInterface & | rSchemaInterface | ) |
Reindiziert alle Indexe einer Datenbank in den Speicher.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
int glo::RealIndexPool::reindex | ( | const SchemaInterface & | rSchemaInterface, |
int | iActions ) |
Reindiziert alle Indexe einer Datenbank in den Speicher.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
[in] | iActions | Wenn übergeben, wird dieser Wert als Gesamtaktionszahl für Notify verwendet. |
int glo::RealIndexPool::reindexObjIDIndexes | ( | const SchemaInterface & | rSchemaInterface | ) |
Reindiziert alle Objekte vom Typ TableObjIdIndex einer Datenbank in den Speicher.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
int glo::RealIndexPool::reindexObjStrIndexes | ( | const SchemaInterface & | rSchemaInterface | ) |
Reindiziert alle Objekte vom Typ ObjectStrIndex einer Datenbank in den Speicher.
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
virtual |
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. |
int glo::RealIndexPool::removeSchemaIndex | ( | const std::string & | rsSchemaName | ) |
Entfernt einen SchemaIndex.
[in] | rsSchemaName | Die Schemabezeichnung (z.B. "MyGloBase") des zu entfernenden SchemaIndex. |
void glo::RealIndexPool::setWatchNotifyManager | ( | WatchNotifyManager * | pWatchNotifyManager | ) |
Setzt den m_pWatchNotifyManager. Die aufrufende Instanz darf den übergebenen WatchNotifyManager nicht vor diesem Objekt löschen. Ggf. muss die aufrufende Instanz über diese Methode m_pWatchNotifyManager auf nullptr setzen.
[in] | pWatchNotifyManager | Der zu referenzierende WatchNotifyManager. |
int glo::RealIndexPool::writeIndexes | ( | const SchemaInterface & | rSchemaInterface | ) |
Schreibt alle Indexe einer Datenbank aus dem Speicher in das Dateisystem (ODX-, FDX- und SDX-Dateien).
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
int glo::RealIndexPool::writeIndexes | ( | const SchemaInterface & | rSchemaInterface, |
int | iActions ) |
Schreibt alle Indexe einer Datenbank aus dem Speicher in das Dateisystem (ODX-, FDX- und SDX-Dateien).
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
[in] | iActions | Wenn übergeben, wird dieser Wert als Gesamtaktionszahl für Notify verwendet. |
int glo::RealIndexPool::writeObjIDIndexes | ( | const SchemaInterface & | rSchemaInterface | ) | const |
Schreibt alle Objekte vom Typ TableObjIdIndex einer Datenbank aus dem Speicher in das Dateisystem (ODX- und FDX-Dateien).
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
int glo::RealIndexPool::writeObjStrIndexes | ( | const SchemaInterface & | rSchemaInterface | ) | const |
Schreibt alle Objekte vom Typ ObjectStrIndex einer Datenbank aus dem Speicher in das Dateisystem (SDX-Dateien).
[in] | rSchemaInterface | Das SchemaInterface repräsentiert die Datenbank. |
|
private |
Wenn eine vom m_pWatchNotifyManager zu notifizierende Aktion ausgeführt wird, sind hier die voraussichtlichen Gesamtaktionen eingetragen.
|
private |
Wenn vorhanden, wird dieser genutzt um z.B. beim reindizieren etc. Clients benachrichtigen zu lassen. Wird von aufrufender Instanz verwaltet!