GlobalObjects
GloBase Klassenreferenz

Diese Klasse ist die Schnittstelle für den Client zu den persistenten Objekten. Hier können "Objekte" angemeldet, gespeichert, angefordert, gelöscht, gesperrt, freigegeben etc. werden. Mehr ...

#include <GloBase.h>

Öffentliche Methoden

 GloBase ()
 
 GloBase (const std::string &rstrClientName)
 
 GloBase (const std::string &rstrClientName, const std::string &rstrSchemaPath, const std::string &rstrBaseName)
 
 GloBase (const std::string &rstrClientName, GloObjCreator &rObjCreator)
 
 GloBase (const std::string &rstrServerName, const std::string &rstrClientName)
 
 GloBase (const std::string &rstrServerName, const std::string &rstrClientName, GloObjCreator &rObjCreator)
 
 GloBase (const std::string &rstrServerName, const std::string &rstrClientName, int iTimeOutSec, unsigned int uiPort, const std::string &rstrSchemaPath, const std::string &rstrKnownSchemes)
 
virtual ~GloBase ()
 
int abortTransaction () const
 
int assignObject (GloBasePersistent *pObject) const
 
int beginTransaction () const
 
int close (GloCallBack *pCallBack=0)
 
int closeAllSet (GloBaseAllSet *pAllSet) const
 
int closeBase (GloCallBack *pCallBack=0)
 
int commitTransaction () const
 
int compressBase (const std::string &rstrBaseName, GloCallBack *pCallBack=0)
 
int compressBase (GloCallBack *pCallBack=0)
 
int connect ()
 
int deleteObject (GloBasePersistent *pObject, GloEnDeepMode eDeepMode) const
 
int disconnect ()
 
int getAllBaseClassInfosFromObj (std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&prBaseClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getAllBaseClassInfosFromObj (std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &rBaseClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getAllBases (std::vector< std::string > *&prRetValVector) const
 
int getAllClassInfosFromBase (std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&prAllClassInfoMap, const std::string &rstrBaseName) const
 
int getAllClassInfosFromBase (std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &rAllClassInfoMap, const std::string &rstrBaseName) const
 
int getAllLoggedClients (std::vector< GloClientInfo > *&prClientInfoVector, const std::string &rstrBaseName="") const
 
int getAllSubClassInfosFromObj (std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&prSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getAllSubClassInfosFromObj (std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &rSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getAnObject (GloBasePersistent *&prObject, const GloObjID &rObjID, bool bGeneric=false) const
 
int getBaseClassInfosFromObj (std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&prBaseClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getBaseClassInfosFromObj (std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &rBaseClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getBaseCount (std::vector< std::string >::size_type &rBaseCount) const
 
std::string getBaseName () const
 
int getClassInfoCount (std::map< unsigned long, GloClassInfo *, std::less< unsigned long > >::size_type &rClassInfoCount, const std::string &rstrBaseName) const
 
int getClassInfoObj (GloClassInfo *&prClassInfo, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getClassInfoObj (std::shared_ptr< GloClassInfo > &rRetVal, unsigned long ulClassID, const std::string &rstrBaseName) const
 
std::string getClientName () const
 
unsigned int getCommunicatorID () const
 
int getDefaultLimits (std::vector< GloLimitRecord > *&prRetValVector) const
 
GloGenPersObjectSpygetGenPersObjectSpy ()
 
int getIndexedObjIdsFromAllSet (std::list< GloObjID > &rObjIDList, const GloBaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) const
 
int getIndexedObjIdsFromAllSet (std::list< GloObjID > &rObjIDList, const GloBaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsIndexSearchValue, GloEnComparisionOp eComparisionOp) const
 
int getIndexedObjIdsFromAllSet (std::list< GloObjID > &rObjIDList, const GloBaseAllSet &rAllSet, const std::string &rsIndexName, unsigned long ulIndexClassID, const std::string &rsRangeStartIndexSearchValue, const std::string &rsRangeEndIndexSearchValue) const
 
int getIndexedObjIdsFromAllSet (std::list< GloObjID > &rObjIDList, const GloBaseAllSet &rAllSet, const std::string &rsIndexSearchValue, EnQueryType eQuerryType) const
 
int getIndexedObjIdsFromAllSet (std::list< GloObjID > &rObjIDList, const GloBaseAllSet &rAllSet, const std::string &rsIndexSearchValue, GloEnComparisionOp eComparisionOp) const
 
int getIndexedObjIdsFromAllSet (std::list< GloObjID > &rObjIDList, const GloBaseAllSet &rAllSet, const std::string &rsRangeStartIndexSearchValue, const std::string &rsRangeEndIndexSearchValue) const
 
int getKnownSchemes (std::vector< std::string > &rRetVal)
 
int getLimits (GloLimitRecord *&prLimitRecord, const GloClassInfoAttribute::Type &rClassInfoAttributeType) const
 
int getObjectFromAllSet (GloObjID &rObjID, GloBasePersistent *&prObject, const GloBaseAllSet &rAllSet, GloEnSeekMode eMode, bool bGeneric=false) const
 
GloObjectMakergetObjectMaker ()
 
int getObjIdFromAllSet (GloObjID &rObjID, const GloBaseAllSet &rAllSet, GloEnSeekMode eMode) const
 
GloPersObjectSpygetPersObjectSpy ()
 
int getPort (unsigned int &ruiPort)
 
int getProcessingPossibilities (const GloObjID &rObjId, GloLockPossibleSpecification &rLockPossibleSpecification, GloEnDeepMode eDeepMode) const
 
int getRecord (GloRecord *&prRecord, const GloObjID &rObjID, unsigned long ulClassID) const
 
int getRootClassInfoObj (GloClassInfo *&prRootClassInfo, const std::string &rstrBaseName) const
 
int getRootClassInfoObj (std::shared_ptr< GloClassInfo > &rRetVal, const std::string &rstrBaseName) const
 
int getSchemaNameWithPath (std::string &rstrRetVal)
 
int getSchemaPath (std::string &rstrRetVal)
 
std::string getServerName () const
 
int getSizeFromAllSet (std::size_t &rnSize, const GloBaseAllSet &rAllSet) const
 
int getSubClassInfosFromObj (std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&prSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getSubClassInfosFromObj (std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &rSubClassInfoMap, unsigned long ulClassID, const std::string &rstrBaseName) const
 
int getTimeOutSec (int &riTimeOutSec)
 
int indexAvailable (const std::string &rsIndexName, unsigned long ulClassID, const std::string &rstrBaseName) const
 
bool isConnected () const
 
bool isKnownClassID (unsigned long ulClassID) const
 
int isLockedObject (const GloObjID &rObjId, GloEnLockMode eLockMode, GloEnDeepMode eDeepMode) const
 
bool isOpen () const
 
int isPossible (const GloObjID &rObjId, bool bRead, bool bWrite, bool bDelete, GloEnDeepMode eDeepMode) const
 
int isStoredObject (bool &rbRetVal, GloBasePersistent *pObject) const
 
int lockLot (const GloBaseLot &rObjIdLot, GloEnLockMode eLockMode, GloEnDeepMode eDeepMode) const
 
int lockObject (const GloObjID &rObjId, GloEnLockMode eLockMode, GloEnDeepMode eDeepMode) const
 
int lockObjIdList (std::list< GloObjID > *pObjIDList, GloEnLockMode eLockMode, GloEnDeepMode eDeepMode) const
 
int objIDInAllSet (const GloObjID &rObjID, const GloBaseAllSet &rAllSet) const
 
int open (const std::string &rstrBaseName, GloCallBack *pCallBack=0)
 
int openAllSet (GloBaseAllSet *pAllSet) const
 
int openBase (GloCallBack *pCallBack=0)
 
int openBaseComfortably (GloCallBack *pCallBack=0)
 
int reconnect ()
 
int refreshObject (GloBasePersistent *pObject) const
 
int reindexBase (const std::string &rstrBaseName, GloCallBack *pCallBack=0)
 
int reindexBase (GloCallBack *pCallBack=0)
 
int removeIndexFilter (const GloBaseAllSet &rAllSet)
 
int repairBase (const std::string &rstrBaseName, GloCallBack *pCallBack=0)
 
int repairBase (GloCallBack *pCallBack=0)
 
int setBaseName (const std::string &rstrBaseName)
 
int setClientName (const std::string &rstrClientName)
 
int setCurrentObjectInAllSet (const GloObjID &rObjID, const GloBaseAllSet &rAllSet) const
 
int setIndexFilter (const GloBaseAllSet &rAllSet, const std::string &rsIndexFilter) const
 
int setIndexFilter (const GloBaseAllSet &rAllSet, const std::string &rsIndexFilter, GloEnComparisionOp eComparisionOp) const
 
int setIndexFilter (const GloBaseAllSet &rAllSet, const std::string &rsRangeStartIndexFilter, const std::string &rsRangeEndIndexFilter) const
 
int setKnownSchemes (const std::string &rstrKnownSchemes)
 
int setPositionInAllSet (std::size_t nPosition, const GloBaseAllSet &rAllSet) const
 
int setSchemaPath (const std::string &rstrSchemaPath)
 
int setWatchClass (unsigned long ulClassID, GloTdWatchNotifyMode iWatchMode, GloCallBack *pCallBack) const
 
int setWatchClient (GloTdWatchNotifyMode iWatchMode, GloCallBack *pCallBack) const
 
int setWatchIndex (GloTdWatchNotifyMode iWatchMode, GloCallBack *pCallBack) const
 
int setWatchLot (const GloBaseLot &rObjIdLot, GloTdWatchNotifyMode iWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack) const
 
int setWatchObject (const GloObjID &rObjId, GloTdWatchNotifyMode iWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack) const
 
int storeObject (GloBasePersistent *pObject, GloEnDeepMode eDeepMode) const
 
int unlockLot (const GloBaseLot &rObjIdLot, GloEnLockMode eLockMode, GloEnDeepMode eDeepMode) const
 
int unlockObject (const GloObjID &rObjId, GloEnLockMode eLockMode, GloEnDeepMode eDeepMode) const
 
int unlockObjIdList (std::list< GloObjID > *pObjIDList, GloEnLockMode eLockMode, GloEnDeepMode eDeepMode) const
 
int unsetWatchClass (unsigned long ulClassID, GloTdWatchNotifyMode iWatchMode, GloCallBack *pCallBack) const
 
int unsetWatchClient (GloTdWatchNotifyMode iWatchMode, GloCallBack *pCallBack) const
 
int unsetWatchIndex (GloTdWatchNotifyMode iWatchMode, GloCallBack *pCallBack) const
 
int unsetWatchLot (const GloBaseLot &rObjIdLot, GloTdWatchNotifyMode iWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack) const
 
int unsetWatchObject (const GloObjID &rObjId, GloTdWatchNotifyMode iWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack) const
 

Geschützte Methoden

int fillObjectRecord (GloPersistent *pObject) const
 
GloPrivateBasePrivateBase () const
 

Private Methoden

 GloBase (const GloBase &)
 
GloBaseoperator= (const GloBase &)
 

Private Attribute

EuCriticalSection m_LocalCriticalSection
 
GloPrivateBasem_pPrivateBase
 

Freundbeziehungen

class GloEmbeddedRecordAttribute
 
class GloObjectMaker
 
class GloPersistent
 

Ausführliche Beschreibung

Diese Klasse ist die Schnittstelle für den Client zu den persistenten Objekten. Hier können "Objekte" angemeldet, gespeichert, angefordert, gelöscht, gesperrt, freigegeben etc. werden.

Transaktionen können hier gestartet und beendet werden.

Locks können hier gestartet und beendet werden.

Watches werden hier angefordert und beendet.

In der Regel werden die Aufrufe von Methoden der Klasse GloBasePersistent (z.B. GloBasePersistent::store (...), GloBasePersistent::refresh(), GloBasePersistent::deleteInBase (...), GloBasePersistent::lock (...) und GloBasePersistent::unlock (...) etc.) an GloBase weitergeleitet.

Objekte welche angemeldet bzw. angefordert werden, bekommen eine Referenz auf ihre Datenbank.

Wenn mit Objekten, abgeleitet vom Typ GloPersistent, gearbeitet werden soll (was die Regel ist), wird ein GloObjCreator benötigt.

Es kann mit der GloBase im "LOCAL"-Mode gearbeitet werden, was bedeutet, dass eine Applikation direkt mit der Datenbank arbeiten kann. Es darf dann nicht von anderer Seite auf die Datentabellen zugegriffen werden.

Es ist auch möglich mit einem GloServer zu arbeiten. Dann können mehrere Applikationen gleichzeitig über den GloServer auf die Objekte zugreifen.

Beispiel:

int t_iErr = 0;
FirstGloBaseObjCreator t_ObjCreator; // FirstGloBaseObjCreator abgeleitet von GloObjCreator
// "LOCALHOST" -> Es wird exklusiv auf die Datenbank zugegriffen
// "WindowsWatcher" -> Die Client-Bezeichnung
// t_ObjCreator -> FirstGloBaseObjCreator wird übergeben, damit Objekte der
// persistenten Klassen instantiiert werden können.
GloBase t_Base( "LOCAL", "WindowsWatcher", t_ObjCreator );
t_iErr = t_Base.openBase();
if ( ! t_iErr )
{
... mach was mit der Datenbank ...
t_Base.closeBase();
}
Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ GloBase() [1/8]

GloBase::GloBase ( )

Der Standard-Konstruktor instanziiert ein Objekt dieser Klasse im "LOCAL"-Mode.

◆ GloBase() [2/8]

GloBase::GloBase ( const std::string &  rstrClientName)

Konstruktor mit Parameterübergabe instanziiert ein Objekt dieser Klasse im "LOCAL"-Mode.

Parameter
[in]rstrClientNameDer Clientname kann übergeben werden.

◆ GloBase() [3/8]

GloBase::GloBase ( const std::string &  rstrClientName,
const std::string &  rstrSchemaPath,
const std::string &  rstrBaseName 
)

Konstruktor mit Parameterübergabe instanziiert ein Objekt dieser Klasse im "LOCAL"-Mode.

Um eine Datenbank ohne DB.ini öffnen zu können, wird der Pfad zu einer Datenbank und die Bezeichnung der Datenbank gebraucht, welches hier übergeben wird.

Parameter
[in]rstrClientNameDer Clientname kann übergeben werden.
[in]rstrSchemaPathDer Verzeichnispfad zur Datenbank ist obligatorisch (z.B. "C:/Pfad/").
[in]rstrBaseNameDie Bezeichnung des Schemas bzw. der Datenbank ist obligatorisch.

◆ GloBase() [4/8]

GloBase::GloBase ( const std::string &  rstrClientName,
GloObjCreator rObjCreator 
)

Konstruktor mit Parameterübergabe instanziiert ein Objekt dieser Klasse im "LOCAL"-Mode.

Um eine Datenbank ohne DB.ini öffnen zu können, kann der Pfad zu einer Datenbank nachträglich übergeben werden (siehe auch GloBase::setSchemaPath (...) ).

Parameter
[in]rstrClientNameDer Clientname kann übergeben werden.
[in]rObjCreatorReferenz auf einen gültigen GloObjCreator (der kennt die persistenten Klassen und die Datenbank).

◆ GloBase() [5/8]

GloBase::GloBase ( const std::string &  rstrServerName,
const std::string &  rstrClientName 
)

Konstruktor mit Parameterübergabe instanziiert ein Objekt dieser Klasse im übergebenen Modus (Parameter rstrServerName).

Das wäre ausreichend, um sich mit einer Datenbank zu verbinden (siehe GloBase::connect() )

Parameter
[in]rstrServerNameDer Servername bzw. die IP-Adresse ist obligatorisch. Wenn "LOCAL" als Server übergeben, wird im Einzelplatzbetrieb gearbeitet.
[in]rstrClientNameDer Clientname kann übergeben werden.

◆ GloBase() [6/8]

GloBase::GloBase ( const std::string &  rstrServerName,
const std::string &  rstrClientName,
int  iTimeOutSec,
unsigned int  uiPort,
const std::string &  rstrSchemaPath,
const std::string &  rstrKnownSchemes 
)

Konstruktor mit Parameterübergabe instanziiert ein Objekt dieser Klasse im übergebenen Modus (Parameter rstrServerName) um eine Datenbank ohne DB.ini öffnen zu können.

Parameter
[in]rstrServerNameDer Servername bzw. die IP-Adresse ist obligatorisch. Wenn "LOCAL" als Server übergeben, wird im lokalen Mode gearbeitet.
Wenn nicht als Server "LOCAL" übergeben, also ein Server angesprochen werden soll, werden rstrSchemaPath und rstrKnownSchemes nicht ausgewertet, weil der Server durch auswerten 'seiner DB.ini' weiß, welche Datenbanken es gibt und wo diese liegen.
Wenn als Server "LOCAL" übergeben, also KEIN Server angesprochen werden soll, wird der uiPort nicht verwendet.
[in]rstrClientNameDer Clientname kann übergeben werden.
[in]iTimeOutSecDie Wartezeit z.B. auf den Server in Sekunden ist obligatorisch.
[in]uiPortDer Port (nur für den Serverbetrieb obligatorisch!).
[in]rstrSchemaPathDer Verzeichnispfad zur Datenbank (z.B. "C:/Pfad/") ist nur für den Einzelplatzbetrieb obligatorisch.
[in]rstrKnownSchemesDie Bezeichnungen der bekannten Datenbank (z.B. "Name1|Name2") sind nur für den Einzelplatzbetrieb obligatorisch.

◆ GloBase() [7/8]

GloBase::GloBase ( const std::string &  rstrServerName,
const std::string &  rstrClientName,
GloObjCreator rObjCreator 
)

Konstruktor mit Parameterübergabe instanziiert ein Objekt dieser Klasse im übergebenen Modus (Parameter rstrServerName) um eine Datenbank mit DB.ini öffnen zu können.
Dieser Konstruktor wird in der Regel verwendet, wenn mit typisierten persistenten Objekten einer Datenbank gearbeitet werden soll.

Parameter
[in]rstrServerNameDer Servername bzw. die IP-Adresse ist obligatorisch. Wenn "LOCAL" als Server übergeben, wird im lokalen Mode gearbeitet.
Wenn nicht als Server "LOCAL" übergeben, also ein Server angesprochen werden soll, muss für den Server (in seinem Zugriff) eine DB.ini vorhanden sein, damit dieser u.a. ermitteln kann, welche Datenbanken es gibt und wo diese liegen.
Wenn als Server "LOCAL" übergeben, also KEIN Server angesprochen werden soll, muss für die Applikation (in ihrem Ausführungsverzeichnis) eine DB.ini vorhanden sein, damit diese u.a. ermitteln kann, welche Datenbanken es gibt und wo diese liegen.
[in]rstrClientNameDer Clientname kann übergeben werden.
[in]rObjCreatorReferenz auf einen gültigen GloObjCreator (der kennt die persistenten Klassen und die Datenbank).

◆ ~GloBase()

virtual GloBase::~GloBase ( )
virtual

Destruktor, es wird aufgeräumt. Wenn die Datenbank geöffnet ist, wird diese zuerst geschlossen (um die Indizes zu schreiben).

◆ GloBase() [8/8]

GloBase::GloBase ( const GloBase )
private

Copy-Konstruktor darf nicht ausgeführt werden. Soll verhindern, dass ein Programmierer ein Objekt aus dieser Klasse z.B. by value an eine Funktion übergibt.

Dokumentation der Elementfunktionen

◆ abortTransaction()

int GloBase::abortTransaction ( ) const

Es wird eine Transaktion abgebrochen.

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
GloBase::beginTransaction() and GloBase::commitTransaction()

◆ assignObject()

int GloBase::assignObject ( GloBasePersistent pObject) const

Meldet übergebenes Objekt bei der geöffneten Datenbank an. Das Objekt bekommt eine Objekt-ID.

Parameter
[in,out]pObjectZeiger auf anzumeldendes persistentes Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ beginTransaction()

int GloBase::beginTransaction ( ) const

Es wird eine Transaktion begonnen.

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
GloBase::commitTransaction() and GloBase::abortTransaction()

◆ close()

int GloBase::close ( GloCallBack pCallBack = 0)

Es wird die geöffnete Datenbank geschlossen.

Parameter
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Schtreibens der Indizes über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Die Datenbank sollte nur mittels Methode GloBase::open (...) geöffnet worden sein.

◆ closeAllSet()

int GloBase::closeAllSet ( GloBaseAllSet pAllSet) const

Schliesst einen AllSet in der geöffneten Datenbank.

Parameter
[in,out]pAllSetDer AllSet.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ closeBase()

int GloBase::closeBase ( GloCallBack pCallBack = 0)

Es wird die Datenbank geschlossen. Es wird impliziet die Verbindung zur Datenbank aufgehoben.

Parameter
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Schtreibens der Indizes über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Die Datenbank sollte nur mittels Methode GloBase::openBase (...) geöffnet worden sein.

◆ commitTransaction()

int GloBase::commitTransaction ( ) const

Es wird eine Transaktion bestätigt.

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Siehe auch
GloBase::beginTransaction() and GloBase::abortTransaction()

◆ compressBase() [1/2]

int GloBase::compressBase ( const std::string &  rstrBaseName,
GloCallBack pCallBack = 0 
)

Es wird die Datenbank mit übergebener Bezeichnung komprimiert. Das bedeutet, dass alle gelöschten Rekorts aus den Tabellen entfernt werden.

Parameter
[in]rstrBaseNameDie Bezeichnung der Datenbank, welche komprimiert werden sollen.
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Komprimierens über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Wenn ohne Fehler beendet, ist der Index neu erstellt worden.
Achtung
Das gewünschte wird nur gelingen, wenn die Datenbank von keiner Instanz geöffnet ist.
Ohne vorheriges Verbinden (siehe auch GloPrivateBase::connect() ) scheitert die Methode.

◆ compressBase() [2/2]

int GloBase::compressBase ( GloCallBack pCallBack = 0)

Es wird die Datenbank mit der Bezeichnung, welche vorher in einem ctor bzw. über GloBase::setBaseName (...) übergeben wurde, komprimiert. Das bedeutet, dass alle gelöschten Rekorts aus den Tabellen entfernt werden.

Parameter
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Komprimierens über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Wenn ohne Fehler beendet, ist der Index neu erstellt worden.
Achtung
Das gewünschte wird nur gelingen, wenn die Datenbank von keiner Instanz geöffnet ist.
Ohne vorheriges Verbinden (siehe auch GloPrivateBase::connect() ) scheitert die Methode.

◆ connect()

int GloBase::connect ( )

Baut eine Verbindung zum GloManager auf.
In Abhängigkeit von der Serverbezeichnug wird bei "LOCAL" ein GloLocalThread instanziiert, ansonsten ein GloClientThread.
Wenn Serverbezeichnug "LOCAL", müssen mindesten der Verzeichnispfad zur Datenbank und die bekannten Datenbank (z.B. "Name1|Name2") bekannt sein.
Wenn die Serverbezeichnug eine Serververbindung beinhaltet, müssen mindesten der TCP-Port und die Angabe über die Wartezeit in Sekunden bekannt sein.

Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
GloBase::disconnect()

◆ deleteObject()

int GloBase::deleteObject ( GloBasePersistent pObject,
GloEnDeepMode  eDeepMode 
) const

Löscht übergebenes persistente in der Datenbank.

Parameter
[in]pObjectEin Zeiger auf das zu löschende Objekt.
[in]eDeepModeDer Löschtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Das gelöschte Objekt kann so nicht mehr gespeichert werden, die Objekt-ID ist 'verbrannt'.

◆ disconnect()

int GloBase::disconnect ( )

Baut eine Verbindung zum GloManager ab.

Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
GloBase::connect()

◆ fillObjectRecord()

int GloBase::fillObjectRecord ( GloPersistent pObject) const
protected

Erstellt und füllt bei übergebenen Objekt den internen Datensatz mit den Daten des Objektes.

Parameter
[in,out]pObjectZeiger auf Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getAllBaseClassInfosFromObj() [1/2]

int GloBase::getAllBaseClassInfosFromObj ( std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&  prBaseClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation aller Oberklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema.

Parameter
[in,out]prBaseClassInfoMapDer Container mit den Klasseninformationen aller Oberklassen der Klasse mit übergebener Klassen-ID.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss mit seinen Elementen von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getAllBaseClassInfosFromObj() [2/2]

int GloBase::getAllBaseClassInfosFromObj ( std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &  rBaseClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation aller Oberklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema in std::shared_ptr's.

Parameter
[in,out]rBaseClassInfoMapDer Container mit den Klasseninformationen aller Oberklassen der Klasse mit übergebener Klassen-ID in std::shared_ptr's.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getAllBases()

int GloBase::getAllBases ( std::vector< std::string > *&  prRetValVector) const

Liefert alle Bezeichnungen der bekannten Datenbanken über den GloManager.

Parameter
[in,out]prRetValVectorDie Bezeichnungen der bekannten Datenbanken.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt in prRetValVector muss von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getAllClassInfosFromBase() [1/2]

int GloBase::getAllClassInfosFromBase ( std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&  prAllClassInfoMap,
const std::string &  rstrBaseName 
) const

Liefert alle Klasseninformation aus einer Datenbank bzw. Schema.

Parameter
[in,out]prAllClassInfoMapDer Container mit allen Klasseninformationen.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss mit seinen Elementen von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getAllClassInfosFromBase() [2/2]

int GloBase::getAllClassInfosFromBase ( std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &  rAllClassInfoMap,
const std::string &  rstrBaseName 
) const

Liefert alle Klasseninformation aus einer Datenbank bzw. Schema in std::shared_ptr's.

Parameter
[in,out]rAllClassInfoMapDer Container mit allen Klasseninformationen in std::shared_ptr's.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss mit seinen Elementen von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getAllLoggedClients()

int GloBase::getAllLoggedClients ( std::vector< GloClientInfo > *&  prClientInfoVector,
const std::string &  rstrBaseName = "" 
) const

Liefert alle auf dem Server eingeloggten Clients (ausser dem aufrufenden) welche eine Datenbank geöffnet haben.

Parameter
[in,out]prClientInfoVectorDie GloClientInfo's welche eine Datenbank geöffnet haben.
[in]rstrBaseNameWenn übergebene Datenbank kein Leerstring, werden die Clients geliefert, welche mit der Datenbank mit dieser Bezeichnung verbunden sind.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getAllSubClassInfosFromObj() [1/2]

int GloBase::getAllSubClassInfosFromObj ( std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&  prSubClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation aller Unterklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema.

Parameter
[in,out]prSubClassInfoMapDer Container mit den Klasseninformationen aller Unterklassen der Klasse mit übergebener Klassen-ID.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss mit seinen Elementen von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getAllSubClassInfosFromObj() [2/2]

int GloBase::getAllSubClassInfosFromObj ( std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &  rSubClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation aller Unterklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema in std::shared_ptr's.

Parameter
[in,out]rSubClassInfoMapDer Container mit den Klasseninformationen aller Unterklassen der Klasse mit übergebener Klassen-ID in std::shared_ptr's.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getAnObject()

int GloBase::getAnObject ( GloBasePersistent *&  prObject,
const GloObjID rObjID,
bool  bGeneric = false 
) const

Liefert ein Objekt mit übergebener Objekt-ID aus der geöffneten Datenbank.

Parameter
[in,out]prObjectDer Zeiger auf das geholte Objekt.
[in]rObjIDDie Objekt-ID.
[in]bGenericWenn false, wird ein Objekt vom Typ GloPersistent bzw. davon abgeleitet geliefert.
Wenn true, wird ein generisches Objekt vom Typ GloGenericPersistent geliefert.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Das gelieferte Objekt muss mittels GloBasePersistent::forget() von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getBaseClassInfosFromObj() [1/2]

int GloBase::getBaseClassInfosFromObj ( std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&  prBaseClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation der direkten Oberklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema.

Parameter
[in,out]prBaseClassInfoMapDer Container mit den Klasseninformationen der direkten Oberklassen der Klasse mit übergebener Klassen-ID.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss mit seinen Elementen von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getBaseClassInfosFromObj() [2/2]

int GloBase::getBaseClassInfosFromObj ( std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &  rBaseClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation der direkten Oberklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema in std::shared_ptr's.

Parameter
[in,out]rBaseClassInfoMapDer Container mit den Klasseninformationen der direkten Oberklassen der Klasse mit übergebener Klassen-ID in std::shared_ptr's.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getBaseCount()

int GloBase::getBaseCount ( std::vector< std::string >::size_type &  rBaseCount) const

Liefert die Anzahl der bekannten Datenbanken über den GloManager.

Parameter
[in,out]rBaseCountDie Anzahl der bekannten Datenbanken.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getBaseName()

std::string GloBase::getBaseName ( ) const

Liefert die Bezeichnung der Datenbank.

Rückgabe
Die Bezeichnung des Schemas bzw. der Datenbank.

◆ getClassInfoCount()

int GloBase::getClassInfoCount ( std::map< unsigned long, GloClassInfo *, std::less< unsigned long > >::size_type &  rClassInfoCount,
const std::string &  rstrBaseName 
) const

Liefert die Anzahl aller Klasseninformation aus einer Datenbank bzw. Schema.

Parameter
[in,out]rClassInfoCountDie Anzahl der Klasseninformationen.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getClassInfoObj() [1/2]

int GloBase::getClassInfoObj ( GloClassInfo *&  prClassInfo,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation einer Klasse aus einer Datenbank bzw. Schema mit übergebener Klassen-ID.

Parameter
[in,out]prClassInfoDie Klasseninformation.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getClassInfoObj() [2/2]

int GloBase::getClassInfoObj ( std::shared_ptr< GloClassInfo > &  rRetVal,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation einer Klasse aus einer Datenbank bzw. Schema in einem std::shared_ptr.

Parameter
[in,out]rRetValDie Klasseninformation.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getClientName()

std::string GloBase::getClientName ( ) const

Liefert einen ggf. gesetzten Clientnamen.

Rückgabe
Der Clientname.

◆ getCommunicatorID()

unsigned int GloBase::getCommunicatorID ( ) const

Liefert die Kommunikator-ID.

Rückgabe
Die Kommunikator-ID.

◆ getDefaultLimits()

int GloBase::getDefaultLimits ( std::vector< GloLimitRecord > *&  prRetValVector) const

Liefert die Standardlimitierungen der Datenbank.

Parameter
[in,out]prRetValVectorAlle Limmits der Datenbank.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Es muss zumindesteine eine Verbindung zum GloManager bestehen (siehe GloBase::connect() )

◆ getGenPersObjectSpy()

GloGenPersObjectSpy* GloBase::getGenPersObjectSpy ( )

Liefert Zeiger auf den GloGenPersObjectSpy aus seiner m_pPrivateBase.

Rückgabe
s.o.
Achtung
Die aufrufende Instanz darf das gelieferte Objekt NICHT ändern oder aus dem Speicher entfernen. Es lebt nur so lange wie dieses Objekt.

◆ getIndexedObjIdsFromAllSet() [1/6]

int GloBase::getIndexedObjIdsFromAllSet ( std::list< GloObjID > &  rObjIDList,
const GloBaseAllSet rAllSet,
const std::string &  rsIndexName,
unsigned long  ulIndexClassID,
const std::string &  rsIndexSearchValue,
EnQueryType  eQuerryType 
) const

Liefert in einer Liste von Objekt-IDs aus dem übergebenen AllSet in Bezug auf die übergebene Parameter.

Parameter
[in,out]rObjIDListIn diese Liste werden die gefundenen Objekt-IDs geliefert.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[in]rsIndexNameDie Indexbezeichnung des zu durchsuchenden Index.
[in]ulIndexClassIDDie ID der Klasse, welche mit dem 'rsIndexName' indiziert ist.
[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.

◆ getIndexedObjIdsFromAllSet() [2/6]

int GloBase::getIndexedObjIdsFromAllSet ( std::list< GloObjID > &  rObjIDList,
const GloBaseAllSet rAllSet,
const std::string &  rsIndexName,
unsigned long  ulIndexClassID,
const std::string &  rsIndexSearchValue,
GloEnComparisionOp  eComparisionOp 
) const

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

Parameter
[in,out]rObjIDListIn diese Liste werden die gefundenen Objekt-IDs geliefert.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[in]rsIndexNameDie Indexbezeichnung des zu durchsuchenden Index.
[in]ulIndexClassIDDie ID der Klasse, welche mit dem 'rsIndexName' indiziert ist.
[in]rsIndexSearchValueDer Indexwert.
[in]eComparisionOpDer Vergleichsoperator. Wenn z.B. rsIndex den Wert "123" und eComparisionOp den Wert GloLESS hat, werden alle Objekte mit dem Index kleiner 123 geliefert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Es werden ggf. vorhandene Platzhalter '*' und '?' im Parameter rsIndexSearchValue NICHT berücksichtigt.

◆ getIndexedObjIdsFromAllSet() [3/6]

int GloBase::getIndexedObjIdsFromAllSet ( std::list< GloObjID > &  rObjIDList,
const GloBaseAllSet rAllSet,
const std::string &  rsIndexName,
unsigned long  ulIndexClassID,
const std::string &  rsRangeStartIndexSearchValue,
const std::string &  rsRangeEndIndexSearchValue 
) const

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

Parameter
[in,out]rObjIDListIn diese Liste werden die gefundenen Objekt-IDs geliefert.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[in]rsIndexNameDie Indexbezeichnung des zu durchsuchenden Index.
[in]ulIndexClassIDDie ID der Klasse, welche mit dem 'rsIndexName' indiziert ist.
[in]rsRangeStartIndexSearchValueDer Start-Indexwert.
[in]rsRangeEndIndexSearchValueDer End-Indexwert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Es werden ggf. vorhandene Platzhalter '*' und '?' im Parameter rsIndexSearchValue NICHT berücksichtigt.

◆ getIndexedObjIdsFromAllSet() [4/6]

int GloBase::getIndexedObjIdsFromAllSet ( std::list< GloObjID > &  rObjIDList,
const GloBaseAllSet rAllSet,
const std::string &  rsIndexSearchValue,
EnQueryType  eQuerryType 
) const

Liefert in einer Liste von Objekt-IDs aus dem übergebenen AllSet in Bezug auf die übergebene Parameter.

Parameter
[in,out]rObjIDListIn diese Liste werden die gefundenen Objekt-IDs geliefert.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[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.
Zu beachten
Es muss im übergebenen AllSet die Indexbezeichnung gesetzt sein.

◆ getIndexedObjIdsFromAllSet() [5/6]

int GloBase::getIndexedObjIdsFromAllSet ( std::list< GloObjID > &  rObjIDList,
const GloBaseAllSet rAllSet,
const std::string &  rsIndexSearchValue,
GloEnComparisionOp  eComparisionOp 
) const

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

Parameter
[in,out]rObjIDListIn diese Liste werden die gefundenen Objekt-IDs geliefert.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[in]rsIndexSearchValueDer Indexwert.
[in]eComparisionOpDer Vergleichsoperator. Wenn z.B. rsIndex den Wert "123" und eComparisionOp den Wert GloLESS hat, werden alle Objekte mit dem Index kleiner 123 geliefert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Es werden ggf. vorhandene Platzhalter '*' und '?' im Parameter rsIndexSearchValue NICHT berücksichtigt.
Es muss im AllSet die Indexbezeichnung gesetzt sein.

◆ getIndexedObjIdsFromAllSet() [6/6]

int GloBase::getIndexedObjIdsFromAllSet ( std::list< GloObjID > &  rObjIDList,
const GloBaseAllSet rAllSet,
const std::string &  rsRangeStartIndexSearchValue,
const std::string &  rsRangeEndIndexSearchValue 
) const

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

Parameter
[in,out]rObjIDListIn diese Liste werden die gefundenen Objekt-IDs geliefert.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[in]rsRangeStartIndexSearchValueDer Start-Indexwert.
[in]rsRangeEndIndexSearchValueDer End-Indexwert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Es werden ggf. vorhandene Platzhalter '*' und '?' im Parameter rsIndexSearchValue NICHT berücksichtigt.
Es muss im AllSet die Indexbezeichnung gesetzt sein.

◆ getKnownSchemes()

int GloBase::getKnownSchemes ( std::vector< std::string > &  rRetVal)

Liefert die Bezeichnungen der bekannten Datenbanken (z.B. "Name1" und "Name2").

Parameter
[in,out]rRetValDie Bezeichnungen der bekannten Datenbanken.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getLimits()

int GloBase::getLimits ( GloLimitRecord *&  prLimitRecord,
const GloClassInfoAttribute::Type rClassInfoAttributeType 
) const

Liefert die Limits des übergebenen GloClassInfoAttribute::Type.

Parameter
[in,out]prLimitRecordDie Limits des übergebenen GloClassInfoAttribute::Type.
[in]rClassInfoAttributeTypeDer GloClassInfoAttribute::Type
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getObjectFromAllSet()

int GloBase::getObjectFromAllSet ( GloObjID rObjID,
GloBasePersistent *&  prObject,
const GloBaseAllSet rAllSet,
GloEnSeekMode  eMode,
bool  bGeneric = false 
) const

Liefert ein Objekt aus dem übergebenen AllSet in Bezug auf eMode.

Parameter
[in,out]rObjIDIn dieser Objekt-ID wird bei keinem Fehler der Werte gesetzt.
[in,out]prObjectDer Zeiger auf das geholte Objekt. Kann trotz gültiger rObjID NULL sein, wenn z.B. 'Lesegesperrt'.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[in]eModeDer Seekmode.
[in]bGenericWenn false, wird ein Objekt vom Typ GloPersistent bzw. davon abgeleitet geliefert.
Wenn true, wird ein generisches Objekt vom Typ GloGenericPersistent geliefert.

Parameterbeispiele:

  • GloSTART = liefert erstes Element
  • GloEND = liefert letztes Element
  • GloCURRENT = liefert aktuelles Element
  • GloNEXT = liefert nächstes Element
  • GloPREVIOUS = liefert vorheriges Element
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == GloERR_RANGE zeigt das Ende des AllSets an.

◆ getObjectMaker()

GloObjectMaker* GloBase::getObjectMaker ( )

Liefert Zeiger auf den GloObjectMaker.

Rückgabe
Der Zeiger auf den GloObjectMaker.

◆ getObjIdFromAllSet()

int GloBase::getObjIdFromAllSet ( GloObjID rObjID,
const GloBaseAllSet rAllSet,
GloEnSeekMode  eMode 
) const

Liefert eine Objekt-ID aus dem übergebenen AllSet in Bezug auf eMode.

Parameter
[in,out]rObjIDIn dieser Objekt-ID wird bei keinem Fehler der Werte gesetzt.
[in]rAllSetDer AllSet, der die Objekt-ID liefern soll.
[in]eModeDer Seekmode.

Parameterbeispiele:

  • GloSTART = liefert erstes Element
  • GloEND = liefert letztes Element
  • GloCURRENT = liefert aktuelles Element
  • GloNEXT = liefert nächstes Element
  • GloPREVIOUS = liefert vorheriges Element
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == GloERR_RANGE zeigt das Ende des AllSets an.

◆ getPersObjectSpy()

GloPersObjectSpy* GloBase::getPersObjectSpy ( )

Liefert Zeiger auf den GloPersObjectSpy aus seiner m_pPrivateBase.

Rückgabe
s.o.
Achtung
Die aufrufende Instanz darf das gelieferte Objekt NICHT ändern oder aus dem Speicher entfernen. Es lebt nur so lange wie dieses Objekt.

◆ getPort()

int GloBase::getPort ( unsigned int &  ruiPort)

Liefert den TCP-Port.

Parameter
[in,out]ruiPortDer TCP-Port.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getProcessingPossibilities()

int GloBase::getProcessingPossibilities ( const GloObjID rObjId,
GloLockPossibleSpecification rLockPossibleSpecification,
GloEnDeepMode  eDeepMode 
) const

Liefert die erlaubten Möglichkeiten für das Objekt mit übergebener Objekt-ID in der Datenbank.

Parameter
[in]rObjIdDie Objekt-Id des zu prüfenden Objekts.
[in,out]rLockPossibleSpecificationDie Möglichkeitsantwort.
[in]eDeepModeDer Tiefenmodus für den geprüft wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ getRecord()

int GloBase::getRecord ( GloRecord *&  prRecord,
const GloObjID rObjID,
unsigned long  ulClassID 
) const

Liefert einen GloRecord aus der Tabelle des Objektes mit übergebener Objekt-ID aus der geöffneten Datenbank.

Parameter
[in,out]prRecordDer Zeiger auf den geholten GloRecord.
[in]rObjIDDie Objekt-ID.
[in]ulClassIDDie Klassen-ID aus dessen Tabelle gelesen wird.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Es wird direkt aus der Datenbank geliefert und nicht ggf. aus dem GloTransactionManager wo ein GloRecord z.B. schon als geändert geführt wird und nur noch auf sein Commit wartet. Sollte im GloTransactionManager das Objekt mit der übergebenen Objekt-ID für die aufrufende Instanz als gelöscht gekennzeichnet sein, wird kein GloRecord geliefert.
Achtung
Das gelieferte Objekt muss mittels GloRecord::forget() von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getRootClassInfoObj() [1/2]

int GloBase::getRootClassInfoObj ( GloClassInfo *&  prRootClassInfo,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation der 'obersten' Klasse der Klassenhierarchie aus einer Datenbank bzw. Schema.

Parameter
[in,out]prRootClassInfoDie Klasseninformation.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getRootClassInfoObj() [2/2]

int GloBase::getRootClassInfoObj ( std::shared_ptr< GloClassInfo > &  rRetVal,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation der 'obersten' Klasse der Klassenhierarchie aus einer Datenbank bzw. Schema in einem std::shared_ptr.

Parameter
[in,out]rRetValDie Klasseninformation in einem std::shared_ptr.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getSchemaNameWithPath()

int GloBase::getSchemaNameWithPath ( std::string &  rstrRetVal)

Liefert den vollständiger Dateinamen des zugrundeliegenden Schemas zusammengesetzt aus Verzeichnispfad + der Bezeichnung der Datenbank.

Parameter
[in,out]rstrRetValVollständiger Dateiname (z.B. "C:/Pfad/MyGloBase.ini").
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getSchemaPath()

int GloBase::getSchemaPath ( std::string &  rstrRetVal)

Liefert den Verzeichnispfad zur Datenbank.

Parameter
[in,out]rstrRetValDer Verzeichnispfad zur Datenbank.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getServerName()

std::string GloBase::getServerName ( ) const

Liefert die Serverbezeichnung.

Rückgabe
Die Serverbezeichnung.

◆ getSizeFromAllSet()

int GloBase::getSizeFromAllSet ( std::size_t &  rnSize,
const GloBaseAllSet rAllSet 
) const

Liefert die Anzahl der Objekte des AllSets in der geöffneten Datenbank.

Parameter
[in]rnSizeDie Anzahl der Objekte des AllSets.
[in]rAllSetDer AllSet, dessen Anzahl geliefert werden soll.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getSubClassInfosFromObj() [1/2]

int GloBase::getSubClassInfosFromObj ( std::map< unsigned long, GloClassInfo *, std::less< unsigned long > > *&  prSubClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformationen der direkten Unterklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema.

Parameter
[in,out]prSubClassInfoMapDer Container mit den Klasseninformationen der direkten Unterklassen der Klasse mit übergebener Klassen-ID.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Das gelieferte Objekt prSubClassInfoMap muss mit seinen Elementen von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getSubClassInfosFromObj() [2/2]

int GloBase::getSubClassInfosFromObj ( std::map< unsigned long, std::shared_ptr< GloClassInfo >, std::less< unsigned long > > &  rSubClassInfoMap,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Liefert die Klasseninformation der direkten Unterklassen einer Klasse mit übergebener Klassen-ID aus einer Datenbank bzw. Schema in std::shared_ptr's.

Parameter
[in,out]rSubClassInfoMapDer Container mit den Klasseninformationen der direkten Unterklassen der Klasse mit übergebener Klassen-ID in std::shared_ptr's.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ getTimeOutSec()

int GloBase::getTimeOutSec ( int &  riTimeOutSec)

Liefert die Sekunden des allgemeinen TimeOuts.

Parameter
[in,out]riTimeOutSecDie allgemeine Angabe über die Wartezeit in Sekunden.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ indexAvailable()

int GloBase::indexAvailable ( const std::string &  rsIndexName,
unsigned long  ulClassID,
const std::string &  rstrBaseName 
) const

Prüft ob es einen String-Index mit übergebene Index-Bezeichnung für übergebene Klasse in einer Datenbank bzw. Schema gibt.

Parameter
[in]rsIndexNameDie zu prüfende Index-Bezeichnung.
[in]ulClassIDDie Klassen-ID.
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
Rückgabe
Wenn Rückgabe == 0 gibt es den Index nicht. Wenn Rückgabe == 1 existiert ein entsprechender String-Index. Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ isConnected()

bool GloBase::isConnected ( ) const

Prüft ob eine Verbindung zum GloManager besteht.

Rückgabe
Liefert true, wenn eine Verbindung zum GloManager besteht.
Siehe auch
GloBase::disconnect() and GloBase::connect().

◆ isKnownClassID()

bool GloBase::isKnownClassID ( unsigned long  ulClassID) const

Prüft ob übergebene Klassen-ID dieser Instanz bzw. dem GloObjectMaker bekannt ist.

Parameter
[in]ulClassIDDie zu prüfende Klassen-ID.
Rückgabe
Wenn true, ist übergebene Klassen-ID dieser Instanz bekannt.

◆ isLockedObject()

int GloBase::isLockedObject ( const GloObjID rObjId,
GloEnLockMode  eLockMode,
GloEnDeepMode  eDeepMode 
) const

Prüft ob Objekt mit übergebener Objekt-ID in der Datenbank mit den übergebenen Parametern gelockt ist.

Parameter
[in]rObjIdDie Objekt-Id des zu prüfenden Objekts.
[in]eLockModeDer zu prüfende Sperrmodus.
[in]eDeepModeDer zu prüfende Sperrtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ isOpen()

bool GloBase::isOpen ( ) const

Prüft ob die Datenbank geöffnet ist.

Rückgabe
Wenn true, ist die Datenbank geöffnet.

◆ isPossible()

int GloBase::isPossible ( const GloObjID rObjId,
bool  bRead,
bool  bWrite,
bool  bDelete,
GloEnDeepMode  eDeepMode 
) const

Prüft ob die übergebenen Aktionen mit dem Objekt mit übergebener Objekt-ID in der Datenbank möglich sind oder ob eine konkurierende Sperre besteht.

Parameter
[in]rObjIdDie Objekt-Id des zu prüfenden Objekts.
[in]bReadWenn true, wird auf Lesen dürfen geprüft.
[in]bWriteWenn true, wird auf Schreiben dürfen geprüft.
[in]bDeleteWenn true, wird auf Löschen dürfen geprüft.
[in]eDeepModeDer Tiefenmodus für den geprüft wird.
Rückgabe
Wenn Rückgabe == 0, ist die Anfrage erlaubt. Eine Rückgabe < 0 zeigt einen Fehler an.

◆ isStoredObject()

int GloBase::isStoredObject ( bool &  rbRetVal,
GloBasePersistent pObject 
) const

Prüft ob übergebenes Objekt in der geöffneten Datenbank gespeichert ist.

Parameter
[in,out]rbRetValWenn true, ist das Objekt in der Datenbank gespeichert.
[in]pObjectDer Zeiger auf das zu prüfende Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ lockLot()

int GloBase::lockLot ( const GloBaseLot rObjIdLot,
GloEnLockMode  eLockMode,
GloEnDeepMode  eDeepMode 
) const

Die übergebenen Objekte werden in der Datenbank gesperrt.

Parameter
[in]rObjIdLotDie zu sperrenden Objekte.
[in]eLockModeDer Sperrmodus.
[in]eDeepModeDer Sperrtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Um die Sperre aufzuheben muss die korrespondierende Methode GloBase::unlockSet (...) mit gleichen Parameterwerten genutzt werden.

◆ lockObject()

int GloBase::lockObject ( const GloObjID rObjId,
GloEnLockMode  eLockMode,
GloEnDeepMode  eDeepMode 
) const

Das Objekt mit der übergebnen Objekt-ID wird in der Datenbank gesperrt.

Parameter
[in]rObjIdDie Objekt-ID des zu sperrenden Objekts.
[in]eLockModeDer Sperrmodus.
[in]eDeepModeDer Sperrtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Um die Sperre aufzuheben muss die korrespondierende Methode GloBase::unlockObject (...) mit gleichen Parameterwerten genutzt werden.

◆ lockObjIdList()

int GloBase::lockObjIdList ( std::list< GloObjID > *  pObjIDList,
GloEnLockMode  eLockMode,
GloEnDeepMode  eDeepMode 
) const

Die Objekte mit übergebener Objekt-ID werden in der Datenbank gesperrt.

Parameter
[in]pObjIDListDie Objekt-IDs der zu sperrenden Objekte.
[in]eLockModeDer Sperrmodus.
[in]eDeepModeDer Sperrtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Um die Sperre aufzuheben muss die korrespondierende Methode GloBase::unlockObjIdList (...) mit gleichen Parameterwerten genutzt werden.

◆ objIDInAllSet()

int GloBase::objIDInAllSet ( const GloObjID rObjID,
const GloBaseAllSet rAllSet 
) const

Prüft, ob ein Objekt mit übergebener Objekt-ID im übergebenen AllSet in der geöffneten Datenbank vorhanden ist.

Parameter
[in]rObjIDDie Objekt-ID.
[in]rAllSetDer zu prüfende AllSet.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ open()

int GloBase::open ( const std::string &  rstrBaseName,
GloCallBack pCallBack = 0 
)

Es wird die Datenbank mit übergebener Bezeichnung zur Bearbeitung geöffnet.

Parameter
[in]rstrBaseNameDie Bezeichnung der Datenbank bzw. des Schemas.
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Einlesens der Indizes über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Ohne vorheriges Verbinden (siehe GloBase::connect() ) scheitert die Methode.
Das Öffnen einer Datenbank mittels dieser Methode bedarf ein Schliessen mit der Methode GloBase::close (...).

◆ openAllSet()

int GloBase::openAllSet ( GloBaseAllSet pAllSet) const

Öffnet einen AllSet in der geöffneten Datenbank. Damit kann ein AllSet in der Applikation durch den AllSet iterieren und Objekte holen.

Parameter
[in,out]pAllSetDer AllSet. Wenn generisch (GloGenericAllSet) muss die Klassen-ID in diesem gesetzt sein, ansonsten wird diese (bei GloTAllSet) in dieser Methode gesetzt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ openBase()

int GloBase::openBase ( GloCallBack pCallBack = 0)

Es wird die Datenbank geöffnet. Es wird sich impliziet mit der Datenbank verbunden.

Parameter
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Einlesens der Indizes über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
GloBase muss mit ein gültiger GloObjCreator instantiiert worden sein sein.
Das Öffnen einer Datenbank mittels dieser Methode bedarf ein Schliessen mit der Methode GloBase::closeBase().

◆ openBaseComfortably()

int GloBase::openBaseComfortably ( GloCallBack pCallBack = 0)

Es wird die Datenbank geöffnet. Es wird sich impliziet mit der Datenbank verbunden.
Sollten Indexdateien nicht vorhanden sein, werden diese automatisch erstellt.

Parameter
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Einlesens der Indizes über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
GloBase muss mit ein gültiger GloObjCreator instantiiert worden sein sein.
Das Öffnen einer Datenbank mittels dieser Methode bedarf ein Schliessen mit der Methode GloBase::closeBase().

◆ operator=()

GloBase& GloBase::operator= ( const GloBase )
private

Zuweisungsoperator ist nicht verfügbar!

◆ PrivateBase()

GloPrivateBase* GloBase::PrivateBase ( ) const
protected

Liefert einen Zeiger auf die GloBase::m_pPrivateBase.

Rückgabe
Zeiger auf die GloBase::m_pPrivateBase lebt nur so lange wie dieses Objekt.

◆ reconnect()

int GloBase::reconnect ( )

Baut eine Verbindung zum GloManager ab und wieder auf.

Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
GloBase::disconnect() and GloBase::connect().

◆ refreshObject()

int GloBase::refreshObject ( GloBasePersistent pObject) const

Frischt das übergebene Objekt bzw. dessen Attribute aus der geöffneten Datenbank auf (liest die dort aktuellen Attributdaten ein).

Parameter
[in,out]pObjectDer Zeiger auf das Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Wenn das Objekt in einer noch nicht abgeschlossenen Transaktion ist, werden die Werte aus der Transaktion geholt.

◆ reindexBase() [1/2]

int GloBase::reindexBase ( const std::string &  rstrBaseName,
GloCallBack pCallBack = 0 
)

Es wird die Datenbank mit übergebener Bezeichnung reindiziert.

Parameter
[in]rstrBaseNameDie Bezeichnung der Datenbank, deren Indizes neu geschrieben werden sollen.
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Reindizierens über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Das gewünschte wird nur gelingen, wenn die Datenbank von keiner Instanz geöffnet ist.
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ reindexBase() [2/2]

int GloBase::reindexBase ( GloCallBack pCallBack = 0)

Es wird die Datenbank mit der Bezeichnung, welche vorher in einem ctor bzw. über GloBase::setBaseName (...) übergeben wurde, reindiziert.

Parameter
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Reindizierens über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Das gewünschte wird nur gelingen, wenn die Datenbank von keiner Instanz geöffnet ist.
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.

◆ removeIndexFilter()

int GloBase::removeIndexFilter ( const GloBaseAllSet rAllSet)

Entfernt einen ggf. gesetzten Filter.

Parameter
[in]rAllSetDer AllSet, dessen Indexfilter entfernt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ repairBase() [1/2]

int GloBase::repairBase ( const std::string &  rstrBaseName,
GloCallBack pCallBack = 0 
)

Es wird die Datenbank mit übergebener Bezeichnung repariert. Folgende Aktione werden durchgeführt:

  • Es wird für jede Klasse geprüft, ob alle Attributverzeichnisse existieren und ggf. angelegt.
  • Es wird jede Tabelle durchlaufen, und geprüft, ob ein Objekt in allen anderen notwendigen Tabellen eingetragen ist. Zerhacktstückte Objekte werden in den Tabellen wo sie fehlen, mit Defaultwerten nachgetragen.
  • Es werden alle Unique-Indexe auf Konsistenz geprüft. Wenn ein Indexeintrag doppelt vorkommt, wird dieser soweit geändet, dass er eindeutig ist.
  • Es werden alle Referenzen auf vorhandensein eines Objektes geprüft. Wenn eine Referenz auf ein nicht vorhandenes Objekt zeigt, wird die Referenz auf NULL gesetzt bzw. entfernt.
  • Es werden alle Reparaturen in ein Logfile eingetragen.
Parameter
[in]rstrBaseNameDie Bezeichnung der Datenbank, welche repariert werden sollen.
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Reparierens über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Wenn ohne Fehler beendet, ist der Index neu erstellt worden.
Achtung
Das gewünschte wird nur gelingen, wenn die Datenbank von keiner Instanz geöffnet ist.
Ohne vorheriges Verbinden (siehe auch GloPrivateBase::connect() ) scheitert die Methode.

◆ repairBase() [2/2]

int GloBase::repairBase ( GloCallBack pCallBack = 0)

Es wird die Datenbank mit der Bezeichnung, welche vorher in einem ctor bzw. über GloBase::setBaseName (...) übergeben wurde, repariert. Folgende Aktione werden durchgeführt:

  • Es wird für jede Klasse geprüft, ob alle Attributverzeichnisse existieren und ggf. angelegt.
  • Es wird jede Tabelle durchlaufen, und geprüft, ob ein Objekt in allen anderen notwendigen Tabellen eingetragen ist. Zerhacktstückte Objekte werden in den Tabellen wo sie fehlen, mit Defaultwerten nachgetragen.
  • Es werden alle Unique-Indexe auf Konsistenz geprüft. Wenn ein Indexeintrag doppelt vorkommt, wird dieser soweit geändet, dass er eindeutig ist.
  • Es werden alle Referenzen auf vorhandensein eines Objektes geprüft. Wenn eine Referenz auf ein nicht vorhandenes Objekt zeigt, wird die Referenz auf NULL gesetzt bzw. entfernt.
  • Es werden alle Reparaturen in ein Logfile eingetragen.
Parameter
[in]pCallBackWenn ein gültiger Zeiger auf ein Objekt übergeben, wird das Fortschreiten des Reoarierens über ein Benachrichtigung an das CallBack-Objekt gesendet (sieh auch GloCallBack::notify (...) ).
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Wenn ohne Fehler beendet, ist der Index neu erstellt worden.
Achtung
Das gewünschte wird nur gelingen, wenn die Datenbank von keiner Instanz geöffnet ist.
Ohne vorheriges Verbinden (siehe auch GloPrivateBase::connect() ) scheitert die Methode.

◆ setBaseName()

int GloBase::setBaseName ( const std::string &  rstrBaseName)

Setzt die Bezeichnung der Datenbank.

Parameter
[in]rstrBaseNameDie Bezeichnung des Schemas bzw. der Datenbank.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an, z.B. wenn schon verbunden.

◆ setClientName()

int GloBase::setClientName ( const std::string &  rstrClientName)

Setzt einen Clientnamen.

Parameter
[in]rstrClientNameDer Clientname.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an, z.B. wenn schon verbunden.

◆ setCurrentObjectInAllSet()

int GloBase::setCurrentObjectInAllSet ( const GloObjID rObjID,
const GloBaseAllSet rAllSet 
) const

Setzt den Iterator des AllSets in der geöffneten Datenbank auf das Objekt, welches die übergebene Objwekt-ID hat.

Parameter
[in]rObjIDDie Objekt-ID.
[in]rAllSetDer AllSet, dessen Iterator gesetzt werden soll.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ setIndexFilter() [1/3]

int GloBase::setIndexFilter ( const GloBaseAllSet rAllSet,
const std::string &  rsIndexFilter 
) const

Setzt eine Filter der die Ausgabe aus dem AllSet in Bezug auf die übergebenen Parameter steuert.

Parameter
[in]rAllSetDer AllSet, dessen Indexfilter gesetzt wird.
[in]rsIndexFilterDer Indexfilter kann die Platzhalter '*' und '?' enthalten, welche bei der Auswertung berücksichtigt werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Es muss im AllSet die Indexbezeichnung gesetzt sein.

◆ setIndexFilter() [2/3]

int GloBase::setIndexFilter ( const GloBaseAllSet rAllSet,
const std::string &  rsIndexFilter,
GloEnComparisionOp  eComparisionOp 
) const

Setzt eine Filter der die Ausgabe aus dem AllSet in Bezug auf die übergebenen Parameter steuert. Es kann das Ergebnisse mittels des Parameters eComparisionOp definiert werden. Wenn z.B. Parameter sIndex den Wert "123" und Parameter eComparisionOp den Wert GloLESS hat, werden nur noch alle Objekte mit dem Index kleiner 123 geliefert.

Parameter
[in]rAllSetDer AllSet, dessen Indexfilter gesetzt wird.
[in]rsIndexFilterDer Indexfilter.
[in]eComparisionOpDer Vergleichsoperator. Wenn z.B. rsIndex den Wert "123" und eComparisionOp den Wert GloLESS hat, werden alle Objekte mit dem Index kleiner 123 geliefert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Es werden ggf. vorhandene Platzhalter '*' und '?' im Parameter rsIndexSearchValue NICHT berücksichtigt.
Es muss im AllSet die Indexbezeichnung gesetzt sein.

◆ setIndexFilter() [3/3]

int GloBase::setIndexFilter ( const GloBaseAllSet rAllSet,
const std::string &  rsRangeStartIndexFilter,
const std::string &  rsRangeEndIndexFilter 
) const

Setzt eine Filter der die Ausgabe aus dem AllSet in Bezug auf die übergebenen Parameter steuert. Es kann das Ergebnisse mittesl Bereichsangabe definiert werden. Wenn z.B. Parameter sIndex den Wert "123" und Parameter sRangeEndIndex den Wert "155" hat, werden nur noch alle Objekte mit dem Index grösser/gleich 123 und kleiner/gleich 155 geliefert.

Parameter
[in]rAllSetDer AllSet, dessen Indexfilter gesetzt wird.
[in]rsRangeStartIndexFilterDer Start-Indexwert.
[in]rsRangeEndIndexFilterDer End-Indexwert.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Es werden ggf. vorhandene Platzhalter '*' und '?' im Parameter rsIndexSearchValue NICHT berücksichtigt.
Es muss im AllSet die Indexbezeichnung gesetzt sein.

◆ setKnownSchemes()

int GloBase::setKnownSchemes ( const std::string &  rstrKnownSchemes)

Setzt die Bezeichnungen der bekannten Datenbanken (z.B. "Name1|Name2").

Parameter
[in]rstrKnownSchemesDie Bezeichnungen der bekannten Datenbanken.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an, z.B. wenn schon verbunden.

◆ setPositionInAllSet()

int GloBase::setPositionInAllSet ( std::size_t  nPosition,
const GloBaseAllSet rAllSet 
) const

Setzt den Iterator des AllSets in der geöffneten Datenbank auf eine bestimmte Position.

Parameter
[in]nPositionDie gewünschte Position.
[in]rAllSetDer AllSet, dessen Iterator gesetzt werden soll.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ setSchemaPath()

int GloBase::setSchemaPath ( const std::string &  rstrSchemaPath)

Setzt den Verzeichnispfad zur Datenbank.

Parameter
[in]rstrSchemaPathDer Verzeichnispfad zur Datenbank (z.B. "C:/Pfad/").
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an, z.B. wenn schon verbunden.

◆ setWatchClass()

int GloBase::setWatchClass ( unsigned long  ulClassID,
GloTdWatchNotifyMode  iWatchMode,
GloCallBack pCallBack 
) const

Der Allset der Klasse mit der übergebenen Klassen-ID und alle enthaltenen Objekte werden in der Datenbank überwacht.

Parameter
[in]ulClassIDDie Klassen-ID des AllSet.
[in]iWatchModeDer Überwachungsmodus.
Erlaubte WatchMode:
[in]pCallBackDas CallBack-Objekt, welches über seine Methode. GloCallBack::notify() benachrichtigt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode GloBase::unsetWatchClass (...) mit gleichen Parameterwerten genutzt werden.
Achtung
Grundsätzlich darf pCallBack nicht zerstört werden, bevor der bzw. die Überwachungen zurückgenommen wurden!

◆ setWatchClient()

int GloBase::setWatchClient ( GloTdWatchNotifyMode  iWatchMode,
GloCallBack pCallBack 
) const

Es wird das Öffnen- und Schliessen einer Datenbank eines Clients überwacht.

Parameter
[in]iWatchModeDer Beobachtungsmodus.
Erlaubte WatchMode:
  • GloWNM_CLIENT_CONNECTSERVER = öffnen wird gemeldet
  • GloWNM_CLIENT_DISCONNECTSERVER = schließen wird gemeldet
  • GloWNM_CLIENT_OPENBASE = öffnen wird gemeldet
  • GloWNM_CLIENT_CLOSEBASE = schließen wird gemeldet
[in]pCallBackDas zu benachrichtigende CallBack-Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode GloBase::unsetWatchClient (...) mit gleichen Parameterwerten genutzt werden.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Grundsätzlich darf pCallBack nicht zerstört werden, bevor der bzw. die Überwachungen zurückgenommen wurden!

◆ setWatchIndex()

int GloBase::setWatchIndex ( GloTdWatchNotifyMode  iWatchMode,
GloCallBack pCallBack 
) const

Es wird das Lesen bzw. Schreiben oder das Reindizieren der Indizes der Datenbank überwacht.

Parameter
[in]iWatchModeDer Beobachtungsmodus.
Erlaubte WatchMode:
  • GloWNM_INDEX_READ = der Fortschritt des Lesens des Index wird gemeldet
  • GloWNM_INDEX_WRITE = der Fortschritt des Schreiben des Index wird gemeldet
  • GloWNM_INDEX_REINDEX = der Fortschritt des Reindizieren eines Index wird gemeldet
[in]pCallBackDas zu benachrichtigende CallBack-Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode GloBase::unsetWatchIndex (...) mit gleichen Parameterwerten genutzt werden.
Achtung
Ohne vorheriges Verbinden (siehe auch GloBase::connect() ) scheitert die Methode.
Grundsätzlich darf pCallBack nicht zerstört werden, bevor der bzw. die Überwachungen zurückgenommen wurden!

◆ setWatchLot()

int GloBase::setWatchLot ( const GloBaseLot rObjIdLot,
GloTdWatchNotifyMode  iWatchMode,
GloEnDeepMode  eDeepMode,
GloCallBack pCallBack 
) const

Objekte im übergebenen Lot werden in der Datenbank überwacht.

Parameter
[in]rObjIdLotDie betroffenen Objekte.
[in]iWatchModeDer Überwachungsmodus.
Erlaubte WatchMode:
[in]eDeepModeDer Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode. GloCallBack::notify() benachrichtigt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode GloBase::unsetWatchSet (...) mit gleichen Parameterwerten genutzt werden.
Achtung
Grundsätzlich darf pCallBack nicht zerstört werden, bevor der bzw. die Überwachungen zurückgenommen wurden!

◆ setWatchObject()

int GloBase::setWatchObject ( const GloObjID rObjId,
GloTdWatchNotifyMode  iWatchMode,
GloEnDeepMode  eDeepMode,
GloCallBack pCallBack 
) const

Objekt mit übergebener Objekt-ID wird in der Datenbank überwacht.

Parameter
[in]rObjIdDie Objekt-Id des zu überwachenden Objekts.
[in]iWatchModeDer Überwachungsmodus.
Erlaubte WatchMode:
[in]eDeepModeDer Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode. GloCallBack::notify() benachrichtigt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode GloBase::unsetWatchObject (...) mit gleichen Parameterwerten genutzt werden.
Achtung
Grundsätzlich darf pCallBack nicht zerstört werden, bevor der bzw. die Überwachungen zurückgenommen wurden!

◆ storeObject()

int GloBase::storeObject ( GloBasePersistent pObject,
GloEnDeepMode  eDeepMode 
) const

Speichert übergebenes persistente in der Datenbank.

Parameter
[in]pObjectEin Zeiger auf das zu speichernde Objekt.
[in]eDeepModeDer Speichertiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Das zu speichernde Objekt muss zumindest schon an die Datenbank angemeldet sein (siehe GloBase::assignObject (...) ).

◆ unlockLot()

int GloBase::unlockLot ( const GloBaseLot rObjIdLot,
GloEnLockMode  eLockMode,
GloEnDeepMode  eDeepMode 
) const

Die übergebenen Objekte werden in der Datenbank nach einer Sperre wieder freigegeben. Eine Sperrfreigabe muss mit den gleichen Parametern wie die vorherige Sperre aufgerufen werden.

Parameter
[in]rObjIdLotDie freizugebenden Objekte.
[in]eLockModeDer ursprüngliche Sperrmodus.
[in]eDeepModeDer ursprüngliche Sperrtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Sperre der korrespondierende Methode GloBase::lockSet (...) auf, wenn die Parameter die selben Werte haben.

◆ unlockObject()

int GloBase::unlockObject ( const GloObjID rObjId,
GloEnLockMode  eLockMode,
GloEnDeepMode  eDeepMode 
) const

Das Objekt mit der übergebnen Objekt-ID wird in der Datenbank nach einer Sperre wieder freigegeben. Eine Sperrfreigabe muss mit den gleichen Parametern wie die vorherige Sperre aufgerufen werden.

Parameter
[in]rObjIdDie Objekt-ID des freizugebenden Objekts.
[in]eLockModeDer ursprüngliche Sperrmodus.
[in]eDeepModeDer ursprüngliche Sperrtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Sperre der korrespondierende Methode GloBase::lockObject (...) auf, wenn die Parameter die selben Werte haben.

◆ unlockObjIdList()

int GloBase::unlockObjIdList ( std::list< GloObjID > *  pObjIDList,
GloEnLockMode  eLockMode,
GloEnDeepMode  eDeepMode 
) const

Die Objekte mit übergebener Objekt-ID werden in der Datenbank nach einer Sperre wieder freigegeben. Eine Sperrfreigabe muss mit den gleichen Parametern wie die vorherige Sperre aufgerufen werden.

Parameter
[in]pObjIDListDie Objekt-IDs der freizugebenden Objekte.
[in]eLockModeDer ursprüngliche Sperrmodus.
[in]eDeepModeDer ursprüngliche Sperrtiefenmodus.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Sperre der korrespondierende Methode GloBase::lockObjIdList (...) auf, wenn die Parameter die selben Werte haben.

◆ unsetWatchClass()

int GloBase::unsetWatchClass ( unsigned long  ulClassID,
GloTdWatchNotifyMode  iWatchMode,
GloCallBack pCallBack 
) const

Die Überwachung des Allset der Klasse mit der übergebenen Klassen-ID und aller enthaltenen Objekte wird in der Datenbank beendet. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.

Parameter
[in]ulClassIDDie Klassen-ID des AllSet.
[in]iWatchModeDer ursprüngliche Überwachungsmodus.
Erlaubte WatchMode:
[in]pCallBackDas CallBack-Objekt, welches über seine Methode. GloCallBack::notify() benachrichtigt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ unsetWatchClient()

int GloBase::unsetWatchClient ( GloTdWatchNotifyMode  iWatchMode,
GloCallBack pCallBack 
) const

Es wird die Überwachung des Öffnens- und Schliessens einer Datenbank eines Clients beendet. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.

Parameter
[in]iWatchModeDer ursprüngliche Beobachtungsmodus.
Erlaubte WatchMode:
  • GloWNM_CLIENT_CONNECTSERVER = öffnen wird gemeldet
  • GloWNM_CLIENT_DISCONNECTSERVER = schließen wird gemeldet
  • GloWNM_CLIENT_OPENBASE = öffnen wird gemeldet
  • GloWNM_CLIENT_CLOSEBASE = schließen wird gemeldet
[in]pCallBackDas zu benachrichtigende CallBack-Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ unsetWatchIndex()

int GloBase::unsetWatchIndex ( GloTdWatchNotifyMode  iWatchMode,
GloCallBack pCallBack 
) const

Es wird die Überwachung des Lesens bzw. Schreibens oder des Reindizierens der Indizes der Datenbank beendet. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.

Parameter
[in]iWatchModeDer ursprüngliche Beobachtungsmodus.
Erlaubte WatchMode:
  • GloWNM_INDEX_READ = der Fortschritt des Lesens des Index wird gemeldet
  • GloWNM_INDEX_WRITE = der Fortschritt des Schreiben des Index wird gemeldet
  • GloWNM_INDEX_REINDEX = der Fortschritt des Reindizieren eines Index wird gemeldet
[in]pCallBackDas zu benachrichtigende CallBack-Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ unsetWatchLot()

int GloBase::unsetWatchLot ( const GloBaseLot rObjIdLot,
GloTdWatchNotifyMode  iWatchMode,
GloEnDeepMode  eDeepMode,
GloCallBack pCallBack 
) const

Die Überwachung der Objekte im übergebenen Lot wird in der Datenbank beendet. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.

Parameter
[in]rObjIdLotDie betroffenen Objekte.
[in]iWatchModeDer ursprüngliche Überwachungsmodus.
Erlaubte WatchMode:
[in]eDeepModeDer ursprüngliche Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode. GloCallBack::notify() benachrichtigt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ unsetWatchObject()

int GloBase::unsetWatchObject ( const GloObjID rObjId,
GloTdWatchNotifyMode  iWatchMode,
GloEnDeepMode  eDeepMode,
GloCallBack pCallBack 
) const

Die Überwachung des Objekts mit übergebener Objekt-ID wird in der Datenbank beendet. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.

Parameter
[in]rObjIdDie Objekt-Id des überwachten Objekts.
[in]iWatchModeDer ursprüngliche Überwachungsmodus.
Erlaubte WatchMode:
[in]eDeepModeDer ursprüngliche Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode. GloCallBack::notify() benachrichtigt wird.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

Freundbeziehungen und Funktionsdokumentation

◆ GloEmbeddedRecordAttribute

friend class GloEmbeddedRecordAttribute
friend

◆ GloObjectMaker

friend class GloObjectMaker
friend

◆ GloPersistent

friend class GloPersistent
friend

Dokumentation der Datenelemente

◆ m_LocalCriticalSection

EuCriticalSection GloBase::m_LocalCriticalSection
private

Damit mehrere Threads auf die Methoden dieser Klasse zugreifen können, ohne daß es zu einer Koalision kommt.

◆ m_pPrivateBase

GloPrivateBase* GloBase::m_pPrivateBase
private

Die Klasse mit den Base-Funktionen..


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
GloBase
Diese Klasse ist die Schnittstelle für den Client zu den persistenten Objekten. Hier können "Objekte"...
Definition: GloBase.h:136