GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::TableReaderInterface Klassenreferenz

Ein Objekt dieser Klasse greift auf Tabellen zu und liest Datensätze (Record) und Binärdateien (eut::Blob). Mehr ...

#include <GloTableReaderInterface.h>

Klassendiagramm für glo::TableReaderInterface:

Klassen

class  AllSetObjectStrIndexIteratorItem
 In der m_pAllSetObjectStrIndexIteratorMap werden Objekte dieses Typs verwaltet, um in der Methode TableReaderInterface::setTransactionIndexPool(TransactionIndexPool*) sicherstellen zu können, dass ein AllSet mit Index neu geöffnet werden kann. Mehr ...
 

Öffentliche Methoden

 TableReaderInterface (const SchemaInterface &rScheme, RealIndexPool *pRealIndexPool)
 
virtual ~TableReaderInterface ()
 
int closeAllSet (NUM_PTR ipClientAllSetAddress)
 
int getAllObjIDs (std::list< ObjID > &rRetValList)
 
void getAllTransactionIndexPools (std::vector< TransactionIndexPool * > &rTransactionIndexPoolVector) const
 
int getIndexedObjIdListFromAllSet (std::vector< glo::ObjID > &rObjIDContainer, NUM_PTR ipClientAllSetAddress, const std::string &rsIndexSearchValue, EnComparisionOp eComparisionOp) const
 
int getIndexedObjIdListFromAllSet (std::vector< glo::ObjID > &rObjIDContainer, NUM_PTR ipClientAllSetAddress, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) const
 
int getIndexedObjIdListFromAllSet (std::vector< glo::ObjID > &rObjIDContainer, NUM_PTR ipClientAllSetAddress, const std::string &rsRangeStartIndex, const std::string &rsRangeEndIndex) const
 
int getObjectData (Record *&prRetVal, const ObjID &rObjID, ReaderInfo *pReaderInfo)
 
int getObjIdFromAllSet (ObjID &rObjID, NUM_PTR ipClientAllSetAddress, EnSeekMode eMode) const
 
int getObjIDs (std::list< ObjID > &rRetValList, unsigned long ulClassID)
 
int getObjIDs (std::map< ObjID, ObjID, std::less< ObjID > > &rRetValMap, unsigned long ulClassID)
 
RealIndexPoolgetRealIndexPool () const
 
int getRecord (Record *&prRetVal, const ObjID &rObjID, ReaderInfo *pReaderInfo)
 
int getSizeFromAllSet (std::size_t &rnSize, NUM_PTR ipClientAllSetAddress) const
 
TransactionIndexPoolgetTransactionIndexPool (const TransactionOwner &rCommunicatorWithTreadID) const
 
int isAllSetOpen (NUM_PTR ipClientAllSetAddress) const
 
int objIDInAllSet (const ObjID &rObjID, NUM_PTR ipClientAllSetAddress) const
 
int openAllSet (const TransactionOwner &rCommunicatorWithTreadID, NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, bool bWithSubClasses)
 
int openAllSet (const TransactionOwner &rCommunicatorWithTreadID, NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, const std::string &rsIndexName)
 
virtual int openTable (const std::string &sTableName)
 
void refreshAllTables ()
 
int removeFilterInAllSet (NUM_PTR ipClientAllSetAddress) const
 
int setCurrentObjectInAllSet (const ObjID &rObjID, NUM_PTR ipClientAllSetAddress) const
 
int setFilterInAllSet (NUM_PTR ipClientAllSetAddress, const std::string &rsIndexFilterValue) const
 
int setFilterInAllSet (NUM_PTR ipClientAllSetAddress, const std::string &rsIndexFilterValue, EnComparisionOp eComparisionOp) const
 
int setFilterInAllSet (NUM_PTR ipClientAllSetAddress, const std::string &rsRangeStartIndex, const std::string &rsRangeEndIndex) const
 
int setPositionInAllSet (std::size_t nPosition, NUM_PTR ipClientAllSetAddress) const
 
int setTransactionIndexPool (const TransactionOwner &rCommunicatorWithTreadID, TransactionIndexPool *pTransactionIndexPool)
 
- Öffentliche Methoden geerbt von glo::TableInterface
 TableInterface (const SchemaInterface &rScheme, RealIndexPool *pRealIndexPool)
 
virtual ~TableInterface ()
 
virtual int closeTable (const std::string &sTable)
 
std::string getDataPath () const
 
int getObjIDRecordAttribute (ObjIDRecordAttribute *&prRetVal, const std::string &sTable, const ObjID &rObjID)
 
SchemaInterfacegetSchemaInterface ()
 
std::string getSchemaPath () const
 
int objIDInBase (bool &rPresent, const ObjID &rObjID) const
 

Geschützte Methoden

 TableReaderInterface ()
 
int generateRecord (Record *&prRetVal, const std::string &sDataRow, ClassInfo &rClassInfo, std::streampos StreamPosRow, bool bOnlyClassIDTable=false)
 
int generateRecord (Record *&prRetVal, const std::string &sFieldNameRow, const std::string &sDataRow, std::streampos StreamPosRow, const std::string &rsTable, bool bOnlyClassIDTable=false)
 
int getObjectData (Record *&prRetVal, const ObjID &rObjID, ReaderInfo *pReaderInfo, bool bInRecursion)
 
int getObjectDataFromDataRow (Record *&prRetVal, const ObjID &rObjID, unsigned long ulClassID, bool bOnlyClassIDTable=false)
 
int getObjectDataFromDataRow (std::shared_ptr< Record > &sprRetVal, const ObjID &rObjID, unsigned long ulClassID, bool bOnlyClassIDTable=false)
 
int getObjIDs (std::list< ObjID > *pRetValList, std::map< ObjID, ObjID, std::less< ObjID > > *pRetValMap, unsigned long ulClassID)
 
int getRecord (Record *&prRetVal, const ObjID &rObjID, ClassInfo &rClassInfo, bool bOnlyClassIDTable=false)
 
int getRecord (Record *&prRetVal, const std::string &sTableName, const ObjID &rObjID, unsigned long ulClassID, bool bOnlyClassIDTable=false)
 
IndexPool::TableObjIdIndexIteratoropenAllSet (int &riErr, const TransactionOwner &rCommunicatorWithTreadID, NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, bool bWithSubClasses=true)
 
IndexPool::ObjectStrIndexIteratoropenAllSet (int &riErr, const TransactionOwner &rCommunicatorWithTreadID, NUM_PTR ipClientAllSetAddress, unsigned long ulClassID, const std::string &rsIndexName)
 
- Geschützte Methoden geerbt von glo::TableInterface
 TableInterface ()
 
int openFile (std::fstream *&prFStream, const std::string &sFullFileName, std::ios_base::openmode OpenMode)
 

Private Methoden

 TableReaderInterface (const TableReaderInterface &)
 
void deleteAllSetObjectStrIndexIteratorMap (std::unordered_map< NUM_PTR, AllSetObjectStrIndexIteratorItem * > *pMapToDelete)
 
void deleteAllSetTableObjIdIndexIteratorMap (std::unordered_map< NUM_PTR, IndexPool::TableObjIdIndexIterator * > *pMapToDelete)
 
TableInterfaceoperator= (const TableInterface &)
 

Private Attribute

std::unordered_map< NUM_PTR, AllSetObjectStrIndexIteratorItem * > * m_pAllSetObjectStrIndexIteratorMap
 
std::unordered_map< NUM_PTR, IndexPool::TableObjIdIndexIterator * > * m_pAllSetTableObjIdIndexIteratorMap
 
std::unordered_map< TransactionOwner, TransactionIndexPool *, glo::TransactionOwner::HashFunctionm_pTransactionIndexPools
 
std::unordered_map< ObjID, Record *, glo::ObjID::HashFunctionm_RecursionRecordMap
 

Weitere Geerbte Elemente

- Geschützte Attribute geerbt von glo::TableInterface
std::unordered_map< std::string, TableInterfaceTable * > m_OpenTableMap
 
RealIndexPoolm_pRealIndexPool
 
SchemaInterfacem_pSchema
 

Ausführliche Beschreibung

Ein Objekt dieser Klasse greift auf Tabellen zu und liest Datensätze (Record) und Binärdateien (eut::Blob).

Es werden beim instanziieren alle Tabellen, welche dem Schema bekannt sind, geöffnet, und beim zerstören wieder geschlossen.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ TableReaderInterface() [1/3]

glo::TableReaderInterface::TableReaderInterface ( )
protected

Der Standard-Konstruktor steht nicht zur Verfügung.

◆ TableReaderInterface() [2/3]

glo::TableReaderInterface::TableReaderInterface ( const SchemaInterface & rScheme,
RealIndexPool * pRealIndexPool )

Konstruktor mit Parameterübergabe.

Parameter
[in]rSchemeOhne Schema gehts nicht, wird kopiert.
[in]pRealIndexPoolBeschleunigt den Zugriff auf Datensätze.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

◆ ~TableReaderInterface()

virtual glo::TableReaderInterface::~TableReaderInterface ( )
virtual

Destruktor, es werden alle geöffneten Tabellen-Dateien geschlossen und der Speicher aufgeräumt.

◆ TableReaderInterface() [3/3]

glo::TableReaderInterface::TableReaderInterface ( const TableReaderInterface & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ closeAllSet()

int glo::TableReaderInterface::closeAllSet ( NUM_PTR ipClientAllSetAddress)

Schliesst einen AllSet mit der übergebenen Client-AllSet Adresse.

Parameter
[in]ipClientAllSetAddressDie Client-AllSet Adresse.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ deleteAllSetObjectStrIndexIteratorMap()

void glo::TableReaderInterface::deleteAllSetObjectStrIndexIteratorMap ( std::unordered_map< NUM_PTR, AllSetObjectStrIndexIteratorItem * > * pMapToDelete)
private

Löscht die Objekte in übergebener AllSetObjectStrIndexIteratorMap und diese selbst auch.

Parameter
[in]pMapToDeleteDie zu löschende Map.
Zu beachten
Die übergebene Map ist nicht mehr gültig.

◆ deleteAllSetTableObjIdIndexIteratorMap()

void glo::TableReaderInterface::deleteAllSetTableObjIdIndexIteratorMap ( std::unordered_map< NUM_PTR, IndexPool::TableObjIdIndexIterator * > * pMapToDelete)
private

Löscht die Objekte in übergebener AllSetTableObjIdIndexIteratorMap und diese selbst auch.

Parameter
[in]pMapToDeleteDie zu löschende Map.
Zu beachten
Die übergebene Map ist nicht mehr gültig.

◆ generateRecord() [1/2]

int glo::TableReaderInterface::generateRecord ( Record *& prRetVal,
const std::string & sDataRow,
ClassInfo & rClassInfo,
std::streampos StreamPosRow,
bool bOnlyClassIDTable = false )
protected

Generiert einen Datensatz und überträgt alle Daten, ermittelt aus den Parametern, in die Datensatzattribute.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]sDataRowDie Zeile mit den Tabellen-Daten (z.B. "13.0.2|1453983511|1455873934|") aus der Tabellen-Datei.
[in]rClassInfoDie ClassInfo mit der Klassen-ID und dem Tabellennamen.
[in]StreamPosRowDie Position der Tabellen-Datenzeile in der Tabellen-Datei.
[in]bOnlyClassIDTableWenn true, werden nur die Datensatz-Attribute aus der Tabelle gelesen und nicht z.B. die evtl. vorhandenen Blob- und Stringdateien.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.

◆ generateRecord() [2/2]

int glo::TableReaderInterface::generateRecord ( Record *& prRetVal,
const std::string & sFieldNameRow,
const std::string & sDataRow,
std::streampos StreamPosRow,
const std::string & rsTable,
bool bOnlyClassIDTable = false )
protected

Generiert einen Datensatz und überträgt alle Daten, ermittelt aus den Parametern, in die Datensatzattribute.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]sFieldNameRowDie Zeile mit den Tabellen-Feldbezeichnungen (z.B. "ObjID|CreateDate|LastChange|") aus der Tabellen-Datei.
[in]sDataRowDie Zeile mit den Tabellen-Daten (z.B. "13.0.2|1453983511|1455873934|") aus der Tabellen-Datei.
[in]StreamPosRowDie Position der Tabellen-Datenzeile in der Tabellen-Datei.
[in]rsTableDie vollständige Tabellen-Dateibezeichnung.
[in]bOnlyClassIDTableWenn true, werden nur die Datensatz-Attribute aus der Tabelle gelesen und nicht z.B. die evtl. vorhandenen Blob- und Stringdateien.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.

◆ getAllObjIDs()

int glo::TableReaderInterface::getAllObjIDs ( std::list< ObjID > & rRetValList)

Liefert alle Objekt-IDs aus der Tabelle des Persistent (Klassen-ID == 1).

Parameter
[in,out]rRetValListGefundene Objekt-IDs kommen hier rein. Die Liste wird vorher geleert.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
getObjIDs(std::list<ObjID>&,unsigned long),
getObjIDs(std::map< ObjID, ObjID, std::less<ObjID> >&,unsigned long)

◆ getAllTransactionIndexPools()

void glo::TableReaderInterface::getAllTransactionIndexPools ( std::vector< TransactionIndexPool * > & rTransactionIndexPoolVector) const

Liefert alle TransactionIndexPools aus m_pTransactionIndexPools.

Parameter
[in]rTransactionIndexPoolVectorDie TransactionIndexPools.
Rückgabe
Der referenzierte TransactionIndexPool oder nullptr.
Achtung
Wenn geliefert, leben die gelieferte Objekt nur so lange wie das liefernde Objekt; darf also von aufrufender Instanz nicht aus dem Speicher entfernt werden.

◆ getIndexedObjIdListFromAllSet() [1/3]

int glo::TableReaderInterface::getIndexedObjIdListFromAllSet ( std::vector< glo::ObjID > & rObjIDContainer,
NUM_PTR ipClientAllSetAddress,
const std::string & rsIndexSearchValue,
EnComparisionOp eComparisionOp ) const

Liefert eine Liste von Objekt-IDs aus dem AllSet in Bezug auf die übergebene Parameter. Es können Ergebnisse mittels des Parameters eComparisionOp definiert werden. Wenn z.B. Parameter rsIndexSearchValue den Wert "123" und Parameter eComparisionOp den Wert LESS hat, werden alle Objekte mit dem Index kleiner "123" geliefert.

Parameter
[in,out]rObjIDContainerIn diese Liste werden die Objekt-IDs der gefundenen Objekt-IDs geliefert.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]rsIndexSearchValueDer Indexwert.
[in]eComparisionOpDer Vergleichsoperator.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ getIndexedObjIdListFromAllSet() [2/3]

int glo::TableReaderInterface::getIndexedObjIdListFromAllSet ( std::vector< glo::ObjID > & rObjIDContainer,
NUM_PTR ipClientAllSetAddress,
const std::string & rsIndexSearchValue,
EnQueryType eQuerryType ) const

Liefert eine Liste von Objekt-IDs aus einem AllSet in Bezug auf die übergebene Parameter.

Parameter
[in,out]rObjIDContainerIn diese Liste werden die Objekt-IDs der gefundenen Objekt-IDs geliefert.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]rsIndexSearchValueDer Indexausdruck kann die Platzhalter '*' und '?' enthalten, welche bei der Auswertung berücksichtigt werden oder wenn Parameter eQueryType == eOQL, wird der String als OQL-Ausdruck interpretiert.
[in]eQuerryTypeDer Abfragetyp.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ getIndexedObjIdListFromAllSet() [3/3]

int glo::TableReaderInterface::getIndexedObjIdListFromAllSet ( std::vector< glo::ObjID > & rObjIDContainer,
NUM_PTR ipClientAllSetAddress,
const std::string & rsRangeStartIndex,
const std::string & rsRangeEndIndex ) const

Liefert eine Liste von Objekt-IDs aus dem AllSet in Bezug auf die übergebene Parameter. Es können Ergebnisse mittesl Bereichsangabe definiert werden. Wenn z.B. Parameter rsRangeStartIndex den Wert "123" und Parameter rsRangeEndIndex den Wert "155" hat, werden alle Objekte mit dem Index grösser/gleich "123" und kleiner/gleich "155" geliefert.

Parameter
[in,out]rObjIDContainerIn diese Liste werden die Objekt-IDs der gefundenen Objekt-IDs geliefert.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]rsRangeStartIndexDer Start-Indexwert.
[in]rsRangeEndIndexDer End-Indexwert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ getObjectData() [1/2]

int glo::TableReaderInterface::getObjectData ( Record *& prRetVal,
const ObjID & rObjID,
ReaderInfo * pReaderInfo )

Liefert alle Datensatz-Attribute in einem Datensatz des Objektes mit übergebener Objekt-ID.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]rObjIDDie angefragte Objekt-ID.
[in]pReaderInfoEine Info um z.B. über gesperrte Datensätze zu informieren, die dürfen natürliche nicht geliefert werden.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.

◆ getObjectData() [2/2]

int glo::TableReaderInterface::getObjectData ( Record *& prRetVal,
const ObjID & rObjID,
ReaderInfo * pReaderInfo,
bool bInRecursion )
protected

Liefert alle Datensatz-Attribute in einem Datensatz des Objektes mit übergebener Objekt-ID. Wird von getObjectData(Record*&,const ObjID&,ReaderInfo*) genutzt.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]rObjIDDie angefragte Objekt-ID.
[in]pReaderInfoEine Info um z.B. über gesperrte Datensätze zu informieren, die dürfen natürliche nicht geliefert werden.
[in]bInRecursionWenn true, dann Aufruf in sich selbst.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.
Zu beachten
Für Glo-Entwickler: Ist in GloRecordAttributeFunctions.cpp implementiert, damit Erweiterungen von Datensatz-Attributen dort gesammelt vorgenommen werden können.

◆ getObjectDataFromDataRow() [1/2]

int glo::TableReaderInterface::getObjectDataFromDataRow ( Record *& prRetVal,
const ObjID & rObjID,
unsigned long ulClassID,
bool bOnlyClassIDTable = false )
protected

Liefert alle Datensatz-Attribute in einem Datensatz des Objektes mit der übergebenen Objekt-ID.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]rObjIDDie angefragte Objekt-ID.
[in]ulClassIDDie Klassen-ID.
[in]bOnlyClassIDTableWenn true, werden nur die Datensatz-Attribute aus der Tabelle gelesen und nicht z.B. die evtl. vorhandenen Blob- und Stringdateien.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.

◆ getObjectDataFromDataRow() [2/2]

int glo::TableReaderInterface::getObjectDataFromDataRow ( std::shared_ptr< Record > & sprRetVal,
const ObjID & rObjID,
unsigned long ulClassID,
bool bOnlyClassIDTable = false )
protected

Liefert alle Datensatz-Attribute in einem Datensatz des Objektes mit der übergebenen Objekt-ID.

Parameter
[in,out]sprRetValDer generierte Datensatz.
[in]rObjIDDie angefragte Objekt-ID.
[in]ulClassIDDie Klassen-ID.
[in]bOnlyClassIDTableWenn true, werden nur die Datensatz-Attribute aus der Tabelle gelesen und nicht z.B. die evtl. vorhandenen Blob- und Stringdateien.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getObjIdFromAllSet()

int glo::TableReaderInterface::getObjIdFromAllSet ( ObjID & rObjID,
NUM_PTR ipClientAllSetAddress,
EnSeekMode eMode ) const

Liefert eine Objekt-ID aus einem AllSet.

Parameter
[in,out]rObjIDHier wird eine gefundene Objekt-ID eingetragen.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]eModeDer Suchmodus

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende der Liste an.
Zu beachten
Der AllSet aus ipClientAllSetAddress muss geöffnet sein.

◆ getObjIDs() [1/3]

int glo::TableReaderInterface::getObjIDs ( std::list< ObjID > & rRetValList,
unsigned long ulClassID )

Liefert alle Objekt-IDs aus der Tabelle der Klasse mit übergebener Klassen-ID.

Parameter
[in,out]rRetValListGefundene Objekt-IDs kommen hier rein. Die Liste wird vorher geleert.
[in]ulClassIDDie Klassen-ID.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
getObjIDs(std::map< ObjID, ObjID, std::less<ObjID> >&,unsigned long)

◆ getObjIDs() [2/3]

int glo::TableReaderInterface::getObjIDs ( std::list< ObjID > * pRetValList,
std::map< ObjID, ObjID, std::less< ObjID > > * pRetValMap,
unsigned long ulClassID )
protected

Liefert alle Objekt-IDs aus der Tabelle der Klasse mit übergebener Klassen-ID.

Parameter
[in,out]pRetValListGefundene Objekt-IDs kommen hier rein, wenn übergeben. Die Liste wird vorher geleert.
[in,out]pRetValMapGefundene Objekt-IDs, sortiert nach diesen, kommen hier rein, wenn übergeben. Die Map wird vorher geleert.
[in]ulClassIDDie Klassen-ID.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getObjIDs() [3/3]

int glo::TableReaderInterface::getObjIDs ( std::map< ObjID, ObjID, std::less< ObjID > > & rRetValMap,
unsigned long ulClassID )

Liefert alle Objekt-IDs aus der Tabelle der Klasse mit übergebener Klassen-ID.

Parameter
[in,out]rRetValMapGefundene Objekt-IDs, sortiert nach diesen, kommen hier rein. Die Map wird vorher geleert.
[in]ulClassIDDie Klassen-ID.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
getObjIDs(std::list<ObjID>&,unsigned long)

◆ getRealIndexPool()

RealIndexPool * glo::TableReaderInterface::getRealIndexPool ( ) const

Liefert den m_pRealIndexPool bzw. nullptr wenn keiner vorhanden.

Rückgabe
Der referenzierte RealIndexPool oder nullptr.
Achtung
Wenn geliefert, lebt das gelieferte Objekt nur so lange wie das liefernde Objekt; darf also von aufrufender Instanz nicht aus dem Speicher entfernt werden.

◆ getRecord() [1/3]

int glo::TableReaderInterface::getRecord ( Record *& prRetVal,
const ObjID & rObjID,
ClassInfo & rClassInfo,
bool bOnlyClassIDTable = false )
protected

Liefert einen Datensatz des Objektes mit übergebener Objekt-ID aus einer Tabelle.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]rObjIDDie angefragte Objekt-ID.
[in]rClassInfoDie ClassInfo mit der Klassen-ID und dem Tabellennamen.
[in]bOnlyClassIDTableWenn true, werden nur die Datensatz-Attribute aus der Tabelle des Objekts mit übergebener Klassen-ID gelesen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.

◆ getRecord() [2/3]

int glo::TableReaderInterface::getRecord ( Record *& prRetVal,
const ObjID & rObjID,
ReaderInfo * pReaderInfo )

Liefert alle Datensatz-Attribute in einem Datensatz aus der Tabelle des Objektes mit übergebener Objekt-ID.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]rObjIDDie angefragte Objekt-ID.
[in]pReaderInfoEine Info um z.B. über gesperrte Datensätze zu informieren, die dürfen natürliche nicht geliefert werden. Zusätzlich ist die Klassen-ID gesetzt, aus dessen Tabelle gelesen wird.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.

◆ getRecord() [3/3]

int glo::TableReaderInterface::getRecord ( Record *& prRetVal,
const std::string & sTableName,
const ObjID & rObjID,
unsigned long ulClassID,
bool bOnlyClassIDTable = false )
protected

Liefert einen Datensatz des Objektes mit übergebener Objekt-ID aus einer Tabelle.

Parameter
[in,out]prRetValDer generierte Datensatz.
[in]sTableNameDie Tabellen-Dateibezeichnung.
[in]rObjIDDie angefragte Objekt-ID.
[in]ulClassIDDie Klassen-ID.
[in]bOnlyClassIDTableWenn true, werden nur die Datensatz-Attribute aus der Tabelle des Objekts mit übergebener Klassen-ID gelesen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der gelieferte Datensatz muss von aufrufender Instanz mit Record::forget() aus dem Speicher entfernt werden.

◆ getSizeFromAllSet()

int glo::TableReaderInterface::getSizeFromAllSet ( std::size_t & rnSize,
NUM_PTR ipClientAllSetAddress ) const

Liefert die Anzahl der Elemente eines AllSets.

Parameter
[in,out]rnSizeDie Anzahl der Elemente des AllSets.
[in]ipClientAllSetAddressDie Client-AllSet Adresse.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Der AllSet muss geöffnet sein.

◆ getTransactionIndexPool()

TransactionIndexPool * glo::TableReaderInterface::getTransactionIndexPool ( const TransactionOwner & rCommunicatorWithTreadID) const

Liefert den TransactionIndexPool des übergebenen TransactionOwner bzw. nullptr wenn keiner vorhanden.

Parameter
[in]rCommunicatorWithTreadIDDer Kommunikator mit Thread-ID.
Rückgabe
Der referenzierte TransactionIndexPool oder nullptr.
Achtung
Wenn geliefert, lebt das gelieferte Objekt nur so lange wie das liefernde Objekt; darf also von aufrufender Instanz nicht aus dem Speicher entfernt werden.

◆ isAllSetOpen()

int glo::TableReaderInterface::isAllSetOpen ( NUM_PTR ipClientAllSetAddress) const

Prüft ob ein IndexPool::TableObjIdIndexIterator aus einem IndexPool im m_pAllSetTableObjIdIndexIteratorMap, oder ein IndexPool::ObjectStrIndexIterator aus einem IndexPool in m_pAllSetTableObjIdIndexIteratorMap von einem AllSet vorhanden ist; also der AllSet geöffnet ist.

Parameter
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
Rückgabe
Wenn true, ist der AllSet der übergebenen ipClientAllSetAddress geöffnet.

◆ objIDInAllSet()

int glo::TableReaderInterface::objIDInAllSet ( const ObjID & rObjID,
NUM_PTR ipClientAllSetAddress ) const

Prüft, ob ein Objekt mit der übergebenen Objekt-ID im AllSet vorkommt.

Parameter
[in]rObjIDDie angefragte Objekt-ID.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
Rückgabe
Wenn der Rückgabewert > 0, ist ein Objekt mit der übergebenen Objekt-ID im AllSet vorhanden, wenn der Rückgabewert == 0, dann nicht.
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Der AllSet muss geöffnet sein.

◆ openAllSet() [1/4]

int glo::TableReaderInterface::openAllSet ( const TransactionOwner & rCommunicatorWithTreadID,
NUM_PTR ipClientAllSetAddress,
unsigned long ulClassID,
bool bWithSubClasses )

Öffnet einen AllSet. Das bedeutet, das ein IndexPool::TableObjIdIndexIterator aus einem IndexPool in m_pAllSetTableObjIdIndexIteratorMap eingefügt wird.

Parameter
[in]rCommunicatorWithTreadIDDer Kommunikator mit Thread-ID, für den der AllSet geöffnet wird.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]ulClassIDDie Klassen-ID für die ein AllSet geöffnet werden soll.
[in]bWithSubClassesWenn true, wird der IndexIterator auch über die Objekte der Unterklassen der Klasse mit übergebener Klassen-ID iterieren, ansonsten wenn false, wird der IndexIterator nur über die Objekte der Klasse mit übergebener Klassen-ID iterieren.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
IndexPool
RealIndexPool
TransactionIndexPool
IndexPool::TableObjIdIndexIterator

◆ openAllSet() [2/4]

int glo::TableReaderInterface::openAllSet ( const TransactionOwner & rCommunicatorWithTreadID,
NUM_PTR ipClientAllSetAddress,
unsigned long ulClassID,
const std::string & rsIndexName )

Öffnet einen AllSet mit einem String-Index. Das bedeutet, das ein IndexPool::ObjectStrIndexIterator aus einem IndexPool in m_pAllSetTableObjIdIndexIteratorMap eingefügt wird.

Parameter
[in]rCommunicatorWithTreadIDDer Kommunikator mit Thread-ID, für den der AllSet geöffnet wird.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]ulClassIDDie Klassen-ID für die ein AllSet geöffnet werden soll.
[in]rsIndexNameDie Indexbezeichnung des Indexes über den iteriert wird.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
IndexPool
RealIndexPool
TransactionIndexPool
IndexPool::TableObjIdIndexIterator

◆ openAllSet() [3/4]

IndexPool::TableObjIdIndexIterator * glo::TableReaderInterface::openAllSet ( int & riErr,
const TransactionOwner & rCommunicatorWithTreadID,
NUM_PTR ipClientAllSetAddress,
unsigned long ulClassID,
bool bWithSubClasses = true )
protected

Öffnet einen AllSet. Das bedeutet, das ein IndexPool::TableObjIdIndexIterator aus einem IndexPool in m_pAllSetTableObjIdIndexIteratorMap eingefügt wird.

Parameter
[in,out]riErrEin Rückgabewert < 0 zeigt einen Fehler an.
[in]rCommunicatorWithTreadIDDer Kommunikator mit Thread-ID, für den der AllSet geöffnet wird.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]ulClassIDDie Klassen-ID für die ein AllSet geöffnet werden soll.
[in]bWithSubClassesWenn true, wird der IndexIterator auch über die Objekte der Unterklassen der Klasse mit übergebener Klassen-ID iterieren, ansonsten wenn false, wird der IndexIterator nur über die Objekte der Klasse mit übergebener Klassen-ID iterieren
Rückgabe
Der IndexIterator, welcher auch in m_pAllSetTableObjIdIndexIteratorMap eingefügt wurde.
Achtung
Wenn geliefert, lebt das gelieferte Objekt nur so lange wie das liefernde Objekt; darf also von aufrufender Instanz nicht aus dem Speicher entfernt werden.
Siehe auch
IndexPool
RealIndexPool
TransactionIndexPool
IndexPool::TableObjIdIndexIterator

◆ openAllSet() [4/4]

IndexPool::ObjectStrIndexIterator * glo::TableReaderInterface::openAllSet ( int & riErr,
const TransactionOwner & rCommunicatorWithTreadID,
NUM_PTR ipClientAllSetAddress,
unsigned long ulClassID,
const std::string & rsIndexName )
protected

Öffnet einen AllSet. Das bedeutet, das ein IndexPool::ObjectStrIndexIterator aus einem IndexPool in m_pAllSetObjectStrIndexIteratorMap eingefügt wird.

Parameter
[in,out]riErrEin Rückgabewert < 0 zeigt einen Fehler an.
[in]rCommunicatorWithTreadIDDer Kommunikator mit Thread-ID, für den der AllSet geöffnet wird.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]ulClassIDDie Klassen-ID für die ein AllSet geöffnet werden soll.
[in]rsIndexNameDie Indexbezeichnung des Indexes über den iteriert wird.
Rückgabe
Der IndexIterator, welcher auch in m_pAllSetObjectStrIndexIteratorMap eingefügt wurde.
Achtung
Wenn ein IndexIterator geliefert wird, lebt das gelieferte Objekt nur so lange wie das liefernde Objekt; darf also von aufrufender Instanz nicht aus dem Speicher entfernt werden.
Siehe auch
IndexPool
RealIndexPool
TransactionIndexPool
IndexPool::TableObjIdIndexIterator

◆ openTable()

virtual int glo::TableReaderInterface::openTable ( const std::string & sTableName)
virtual

Öffnet eine Tabellen-Datei zum lesen und fügt diese bei Erfolg in die Liste der geöffneten Tabellen-Dateien ein.

Parameter
[in]sTableNameDie Tabellen-Dateibezeichnung.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Implementiert glo::TableInterface.

◆ operator=()

TableInterface & glo::TableReaderInterface::operator= ( const TableInterface & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ refreshAllTables()

void glo::TableReaderInterface::refreshAllTables ( )

Frischt die Inhalte der Tabellen-Dateien aus der Liste der geöffneten Tabellen-Dateien auf.

◆ removeFilterInAllSet()

int glo::TableReaderInterface::removeFilterInAllSet ( NUM_PTR ipClientAllSetAddress) const

Entfernt einen Filter in einem AllSet.

Parameter
[in]ipClientAllSetAddressDie Client-AllSet Adresse.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setCurrentObjectInAllSet()

int glo::TableReaderInterface::setCurrentObjectInAllSet ( const ObjID & rObjID,
NUM_PTR ipClientAllSetAddress ) const

Setzt den IndexIterator eines AllSets auf die Position des Objektes mit übergebener Objekt-ID.

Parameter
[in]rObjIDDie Objekt-ID.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Der AllSet muss geöffnet sein.

◆ setFilterInAllSet() [1/3]

int glo::TableReaderInterface::setFilterInAllSet ( NUM_PTR ipClientAllSetAddress,
const std::string & rsIndexFilterValue ) const

Setzt einen Filter in einem AllSet in Bezug auf die übergebene Parameter.

Parameter
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]rsIndexFilterValueDer Indexausdruck kann die Platzhalter '*' und '?' enthalten, welche bei der Auswertung berücksichtigt werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setFilterInAllSet() [2/3]

int glo::TableReaderInterface::setFilterInAllSet ( NUM_PTR ipClientAllSetAddress,
const std::string & rsIndexFilterValue,
EnComparisionOp eComparisionOp ) const

Setzt einen Filter in einem AllSet in Bezug auf die übergebene Parameter. Es kann der Filter mittels des Parameters eComparisionOp näher definiert werden. Wenn z.B. Parameter rsIndexFilterValue den Wert "123" und Parameter eComparisionOp den Wert LESS hat, werden alle Objekte mit dem Index größer/gleich "123" beim Iterieren ausgefiltert.

Parameter
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]rsIndexFilterValueDer Indexwert.
[in]eComparisionOpDer Vergleichsoperator.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setFilterInAllSet() [3/3]

int glo::TableReaderInterface::setFilterInAllSet ( NUM_PTR ipClientAllSetAddress,
const std::string & rsRangeStartIndex,
const std::string & rsRangeEndIndex ) const

Setzt einen Filter in einem AllSet in Bezug auf die übergebene Parameter. Es können Ergebnisse mittesl Bereichsangabe definiert werden. Wenn z.B. Parameter rsRangeStartIndex den Wert "123" und Parameter rsRangeEndIndex den Wert "155" hat, werden alle Objekte mit dem Index kleiner "123" und größer "155" beim Iterieren ausgefiltert.

Parameter
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
[in]rsRangeStartIndexDer Start-Indexwert.
[in]rsRangeEndIndexDer End-Indexwert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setPositionInAllSet()

int glo::TableReaderInterface::setPositionInAllSet ( std::size_t nPosition,
NUM_PTR ipClientAllSetAddress ) const

Setzt den IndexIterator eines AllSets auf auf die übergebene Position.

Parameter
[in]nPositionDie gewünschte Iterator-Position.
[in]ipClientAllSetAddressDie eindeutige Client-AllSet Adresse.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Der AllSet muss geöffnet sein.

◆ setTransactionIndexPool()

int glo::TableReaderInterface::setTransactionIndexPool ( const TransactionOwner & rCommunicatorWithTreadID,
TransactionIndexPool * pTransactionIndexPool )

Übernimmt übergebenen TransactionIndexPool, wenn noch keiner übernommen wurde.
Ein evtl. vorher referenzierter TransactionIndexPool des Kommunikator mit Thread-ID wird aus dem Speicher entfernt.

Parameter
[in]rCommunicatorWithTreadIDDer Kommunikator mit Thread-ID.
[in]pTransactionIndexPoolDer TransactionIndexPool.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Wenn ein TransactionIndexPool übergeben wurde, darf die aufrufende Instanz diesen nicht aus dem Speicher entfernen, dieses erledigt schon das Objekt dieser Klasse.

Dokumentation der Datenelemente

◆ m_pAllSetObjectStrIndexIteratorMap

std::unordered_map< NUM_PTR, AllSetObjectStrIndexIteratorItem * >* glo::TableReaderInterface::m_pAllSetObjectStrIndexIteratorMap
private

Liste von Iteratoren auf einen IndexPool::ObjectStrIndex mit seiner Bezeichnung für einen AllSet (siehe auch: TAllSet und GenericAllSet).

Die Client-AllSet Adresse ist der Map-Index (da ein TableReaderInterface immer einem CommunicaterThread gehört, ist diese Adresse mit dem Client eindeutig).

◆ m_pAllSetTableObjIdIndexIteratorMap

std::unordered_map< NUM_PTR, IndexPool::TableObjIdIndexIterator * >* glo::TableReaderInterface::m_pAllSetTableObjIdIndexIteratorMap
private

Liste von Iteratoren auf einen IndexPool::TableObjIdIndex für einen AllSet (siehe auch: TAllSet und GenericAllSet).

Die Client-AllSet Adresse ist der Map-Index (da ein TableReaderInterface immer einem CommunicaterThread gehört, ist diese Adresse mit dem Client eindeutig).

◆ m_pTransactionIndexPools

std::unordered_map< TransactionOwner, TransactionIndexPool *, glo::TransactionOwner::HashFunction > glo::TableReaderInterface::m_pTransactionIndexPools
private

Wenn ein TransactionIndexPool eines TransactionOwner vorhanden ist, dann werden z.B. die AllSet-Iteratoren auf diesen Index verbogen, weil jetzt alles für den TransactionOwner in einer Transaktion abläuft und z.B. in der Transaktion gemachte Änderungen nicht im realen Index sein sollen.

Im Transktionsindex hingegen werden die Änderungen für den TransactionOwner vorgenommen.

◆ m_RecursionRecordMap

std::unordered_map< ObjID, Record *, glo::ObjID::HashFunction > glo::TableReaderInterface::m_RecursionRecordMap
private

Wenn Datensätze rekursiv gelesen werden, kommen die schon gelesene Datensätze hier rein.


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