GlobalObjects
|
Ein Objekt dieser Klasse bzw. der Unterklasse greift auf Tabellen zu und liest bzw. schreibt Datensätze (Record) und Binärdateien (eut::Blob). Mehr ...
#include <GloTableInterface.h>
Klassen | |
class | TableInterfaceTable |
Eine Datei (std::fstream) und deren Bezeichnung. Mehr ... | |
Öffentliche Methoden | |
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) |
SchemaInterface & | getSchemaInterface () |
std::string | getSchemaPath () const |
int | objIDInBase (bool &rPresent, const ObjID &rObjID) const |
virtual int | openTable (const std::string &sTableName)=0 |
Geschützte Methoden | |
TableInterface () | |
int | openFile (std::fstream *&prFStream, const std::string &sFullFileName, std::ios_base::openmode OpenMode) |
Geschützte Attribute | |
std::unordered_map< std::string, TableInterfaceTable * > | m_OpenTableMap |
RealIndexPool * | m_pRealIndexPool |
SchemaInterface * | m_pSchema |
Private Methoden | |
TableInterface (const TableInterface &) | |
void | closeAllTables () |
TableInterface::TableInterfaceTable * | getTable (const std::string &m_sTableName) |
TableInterface & | operator= (const TableInterface &) |
Ein Objekt dieser Klasse bzw. der Unterklasse greift auf Tabellen zu und liest bzw. schreibt Datensätze (Record) und Binärdateien (eut::Blob).
Es wird ein IndexPool übergeben der beim instanziieren die Indexe (z.B. die ObjIDs) aller Tabellen aufgebaut hat. Es werden Zugriffe auf die Tabellen wenn möglich über diesen IndexPool realisiert.
Wenn eine Tabelle geschlossen bzw. gelesen wird, wird der Index nicht zerstört bzw. neu eingelesen, welches voraussetzt, dass nur ein abgeleiteter Writer mit selbigen RealIndexPool in die Tabellen schreibt darf und die Indexe pflegt.
|
protected |
Der Standard-Konstruktor steht nicht zur Verfügung.
glo::TableInterface::TableInterface | ( | const SchemaInterface & | rScheme, |
RealIndexPool * | pRealIndexPool ) |
Konstruktor mit Parameterübergabe.
[in] | rScheme | Ohne Schema gehts nicht, wird kopiert. |
[in] | pRealIndexPool | Beschleunigt den Zugriff auf Datensätze. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
|
virtual |
Destruktor, es werden alle geöffneten Tabellen-Dateien geschlossen und der Speicher aufgeräumt.
|
private |
Der Copy-Konstruktor steht nicht zur Verfügung.
|
private |
Schliesst und entfernt alle Tabellen-Dateien aus der Liste der geöffneten Tabellen-Dateien.
|
virtual |
Schliesst eine Tabellen-Datei.
[in] | sTable | Die Tabellen-Dateibezeichnung. |
std::string glo::TableInterface::getDataPath | ( | ) | const |
Liefert den vollständigen Verzeichnisnamen, in dem die Daten zu finden sind. Die Daten liegen immer in einem Unterverzeichnis von dem Verzeichnis, in dem die Schemadatei liegt.
int glo::TableInterface::getObjIDRecordAttribute | ( | ObjIDRecordAttribute *& | prRetVal, |
const std::string & | sTable, | ||
const ObjID & | rObjID ) |
Liefert das Objekt-ID-Attribut mit übergebener Objekt-ID aus der Tabellen-Datei mit der übergebenen Bezeichnung.
[in,out] | prRetVal | Das gefundene Objekt-ID-Attribut. |
[in] | sTable | Die Tabellen-Dateibezeichnung in der das Objekt-ID-Attribut gesucht wird. |
[in] | rObjID | Die Objekt-ID des gesuchten Objekt-ID-Attributs. |
SchemaInterface & glo::TableInterface::getSchemaInterface | ( | ) |
Liefert einen Zeiger auf m_pSchema.
std::string glo::TableInterface::getSchemaPath | ( | ) | const |
Liefert den Datei-Pfad wo die Schemadatei zu finden ist.
|
private |
Liefert eine Tabellen-Datei in einem Objekt vom Typ TableInterfaceTable mit der übergebenen Bezeichnung aus der Liste der geöffneten Tabellen-Dateien.
[in] | m_sTableName | Die Dateibezeichnung. |
int glo::TableInterface::objIDInBase | ( | bool & | rPresent, |
const ObjID & | rObjID ) const |
Prüft ob ein Objekt mit übergebener Objekt-ID in der Datenbank gespeichert ist.
[in,out] | rPresent | Wenn true, gibt es ein Objekt mit übergebener Objekt-ID in der Datenbank. |
[in] | rObjID | Die zu prüfende Objekt-ID. |
|
protected |
Öffnet und liefert die geöffnete Datei. Es wird zuerst in der Liste der geöffneten Tabellen-Dateien nachgeschaut, und wenn vorhanden diese geliefert.
Ansonsten wird versucht, eine Datei mit übergebener Bezeichnung zu öffnen und bei Erfolg, diese in der Liste der geöffneten Tabellen-Dateien einzufügen und zu liefern.
Wird von beiden Unterklassen mit unterschiedlichen 'OpenMode' genutzt.
[in,out] | prFStream | Die geöffnete Datei (wenn gelungen). |
[in] | sFullFileName | Die Dateibezeichnung. |
[in] | OpenMode | Der Modus, in dem die Datei geöffnet wird. |
|
pure virtual |
Öffnet in Unterklassen eine Tabellen-Datei und fügt diese bei Erfolg in die Liste der geöffneten Tabellen-Dateien ein.
[in] | sTableName | Die Tabellen-Dateibezeichnung. |
Implementiert in glo::TableReaderInterface und glo::TableWriterInterface.
|
private |
Der Zuweisungsoperator steht nicht zur Verfügung.
|
protected |
Die Menge der geöffneten Tabellen-Dateien.
|
protected |
Wenn verfügbar, wird der RealIndexPool genutzt um einen Datensatz schneller zu finden.
|
protected |
Das zugrundeliegende Schema.