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

Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleitet sein, um deren Objekte in der Datenbank verarbeiten zu können. Mehr ...

#include <GloPersistent.h>

Klassendiagramm für glo::Persistent:

Öffentliche Methoden

 Persistent ()
 
 Persistent (const Persistent &rT)
 
virtual int assign (Base &rBase) override
 
virtual int deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual std::time_t getCreateDate () const override
 
virtual void * getGloAttribute (const AttributeID &rAttributeID)
 
virtual void * getGloAttribute (const std::string &rstrAttributName)
 
virtual unsigned long getGloClassID () const override
 
virtual std::time_t getLastChangeDate () const override
 
virtual ObjID getObjID () const override
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postDeleteInBase (int iDeleteErr, EnDeepMode eDeepMode, void *pData)
 
virtual void postLock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual void postRefresh (int iRefreshErr, void *pData)
 
virtual void postSetWatch (int iSetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
 
virtual void postStore (int iStoreErr, EnDeepMode eDeepMode, void *pData)
 
virtual void postUnlock (int iUnlockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual void postUnsetWatch (int iUnsetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
 
virtual int preDeleteInBase (EnDeepMode eDeepMode, void *&prData)
 
virtual int preLock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int preRefresh (void *&prData)
 
virtual int preSetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
 
virtual int preStore (EnDeepMode eDeepMode, void *&prData)
 
virtual int preUnlock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int preUnsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
 
virtual int refresh () override
 
virtual void removeBase () override
 
virtual int setGloAttribute (const AttributeID &rAttributeID, void *pPara)
 
virtual int setGloAttribute (const std::string &rstrAttributName, void *pPara)
 
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
 
virtual int store (EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void takeOverRecord (Record *pRecord) override
 
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
 
virtual bool isSameOrSuperClassFrom (const glo::Persistent *pPersistent) const
 Prüft ob übergebenes Objekt auf dieses gecastet werden kann.
 
virtual bool isSameOrSuperClassFrom (const std::shared_ptr< glo::Persistent > pPersistent) const
 Prüft ob übergebenes Objekt auf dieses gecastet werden kann.
 
- Öffentliche Methoden geerbt von glo::BasePersistent
 BasePersistent ()
 
 BasePersistent (const BasePersistent &)
 
virtual void activate ()
 
virtual unsigned int forget ()
 
int getAllPersAttributeNames (std::list< std::string > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributeNamesSortByID (std::map< AttributeID, std::string > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributes (std::list< BaseRecordAttribute * > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributes (std::list< std::shared_ptr< BaseRecordAttribute > > &rRetValList, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByID (std::map< AttributeID, BaseRecordAttribute *, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByID (std::map< AttributeID, std::shared_ptr< BaseRecordAttribute >, std::less< AttributeID > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByName (std::map< std::string, BaseRecordAttribute *, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
int getAllPersAttributesSortByName (std::map< std::string, std::shared_ptr< BaseRecordAttribute >, std::less< std::string > > &rRetValMap, const std::vector< unsigned long > *pClassIdVector=0) const
 
virtual int getClassInfo (ClassInfo *&prClassInfo)
 
unsigned int getLinkCount () const
 
int getPersAttribute (BaseRecordAttribute *&prRetVal, const AttributeID &rAttributeID) const
 
int getPersAttribute (BaseRecordAttribute *&prRetVal, const std::string &sName) const
 
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const AttributeID &rAttributeID) const
 
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const std::string &sName) const
 
virtual int getProcessingPossibilities (LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
 
int getRecord (Record *&prRecord) const
 
int getRecord (std::shared_ptr< Record > &rRetVal) const
 
virtual bool isAssigned () const
 
virtual bool isDeletedInBase ()
 
virtual int isLocked (const LockSpecification &rLockSpecification) const
 
virtual int isLocked (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int isPossible (bool bRead, bool bWrite, bool bDelete, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int isPossible (const LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual bool isStored ()
 
virtual int lock (const LockSpecification &rLockSpecification)
 
BasePersistentoperator= (const BasePersistent &rT)
 
virtual unsigned int remember ()
 
virtual int setWatch (const WatchSpecification &rWatchSpec)
 
virtual int unlock (const LockSpecification &rLockSpecification)
 
virtual int unsetWatch (const WatchSpecification &rWatchSpec)
 
bool operator== (const BasePersistent &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 
bool operator!= (const BasePersistent &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 
- Öffentliche Methoden geerbt von glo::CallBack
 CallBack ()
 
 CallBack (Base &rBase)
 
virtual ~CallBack ()
 
BasegetBase () const
 
virtual void notify (NotifyNote &rNote)
 
CallBackoperator= (const CallBack &rT)
 
virtual void setBase (Base *pBase)
 
bool operator== (const CallBack &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 
bool operator!= (const CallBack &rT) const
 Vergleichsoperator, es werden alle Attribute verglichen.
 

Geschützte Methoden

virtual ~Persistent ()
 
virtual void _postAssign (Base &rBase)
 
virtual void insertInObjectSpy () const override
 
Persistentoperator= (const Persistent &rT)
 
virtual void removeInObjectSpy () const override
 
virtual void setCreateDate () override
 
bool operator== (const Persistent &rT) const
 Vergleichsoperator.
 
bool operator!= (const Persistent &rT) const
 Vergleichsoperator.
 
- Geschützte Methoden geerbt von glo::BasePersistent
virtual ~BasePersistent ()
 
void setSpyaction (bool bSpyaction)
 
- Geschützte Methoden geerbt von glo::CallBack
 CallBack (const CallBack &rT)
 

Private Attribute

std::time_t m_dtCreateDate
 
std::time_t m_dtLastChange
 
ObjID m_ObjID
 

Weitere Geerbte Elemente

- Öffentliche Attribute geerbt von glo::CallBack
std::string m_strDebugInfo
 
- Geschützte Attribute geerbt von glo::BasePersistent
bool m_bSpyaction
 
eut::CriticalSection m_LocalCriticalSection
 
Recordm_pRecord
 
unsigned int m_uiReferenceCount
 

Ausführliche Beschreibung

Die Basisklasse der persistenten Klassen. Von dieser Klasse müssen alle persistenten Klassen abgeleitet sein, um deren Objekte in der Datenbank verarbeiten zu können.

Objekte dieses Typs haben einen Referenzzähler und dürfen nicht mittels des Destruktors aus den Speicher entfernt werden.
Objekte mit Referenzzähler dürfen nur einmalig instanziiert werden. Bei Übergabe an eine andere Instanz muss über Persistent::remember() der Referenzzähler inkrementiert werden.
Wenn die eine besitzende Instanz das Objekt nicht mehr braucht, wird über Persistent::forget() der Referenzzähler dekrementiert.
Wenn der Referenzzähler auf 0 läuft, wird der Destruktors automatisch aufgerufen.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ Persistent() [1/2]

glo::Persistent::Persistent ( )

Standard-Konstruktor.

◆ ~Persistent()

virtual glo::Persistent::~Persistent ( )
protectedvirtual

Destruktor, das Objekt entfernt sich aus dem PersObjectSpy, wenn drinn.
Der Destruktor steht nicht zur Verfügung. Das Objekt darf nur über forget() aus dem Speicher entfernt werden.

◆ Persistent() [2/2]

glo::Persistent::Persistent ( const Persistent & rT)

Copy-Konstruktor. Es werden keine Attribute dieser Klasse kopiert!

Dokumentation der Elementfunktionen

◆ _postAssign()

virtual void glo::Persistent::_postAssign ( Base & rBase)
protectedvirtual

Wird aufgerufen in BasePersistent::assign( Base & rBase ), wenn dort kein Fehler. Wird in abgeleiteten Klassen genutzt, um Attribute vom Typ glo::TOndemand und abgeleitete glo::BaseLot mit der Datenbank zu versorgen.

Parameter
[in]rBaseDie Datenbank, in der das Objekt gespeichert wird.
Achtung
Diese Methode wird von GlobalObjects genutzt und in persistenten Unterklassen erweitert. Ergo darf diese Methode vom Entwickler nicht überschrieben werden.

◆ assign()

virtual int glo::Persistent::assign ( Base & rBase)
overridevirtual

Mittels dieser Methode wird ein Objekt dieser Klasse der Datenbank bekannt gemacht und bekommt dadurch (bei Erfolg) eine eindeutige ObjID (wenn nicht schon angemeldet).
Erst nach diesem Aufruf dieser Methode kann ein Objekt gespeichert werden. Ein persistentes Objekt muss nur einmal, vor dem ersten Speichern, an die Datenbank angemeldet werden. Danach behält es ja seine eindeutige ObjID.

Parameter
[in]rBaseDie Datenbank, in der das Objekt gespeichert werden soll.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Die übergebene Datenbank muss geöffnet sein.

Erneute Implementation von glo::BasePersistent.

◆ deleteInBase()

virtual int glo::Persistent::deleteInBase ( EnDeepMode eDeepMode = DM_SHALLOW)
overridevirtual

Das Objekt bzw. dessen persistenten Attribute werden in der Datenbank gelöscht.
Es wird vor dem Löschen in der Datenbank die Methode Persistent::preDeleteInBase(EnDeepMode,void*&) aufgerufen, der zusätzlich zum glo::EnDeepMode eine Zeigerreferenz (die in Persistent::preDeleteInBase(EnDeepMode,void*&) gesetzt werden kann) mitgegeben wird. Nach dem Löschen bzw. auch bei nicht gelingen, wird die Methode Persistent::postDeleteInBase(int,EnDeepMode,void*) aufgerufen.
Bei Bedarf können Persistent::preDeleteInBase(EnDeepMode,void*&) und Persistent::postDeleteInBase(int,EnDeepMode,void*) überschrieben werden.

Parameter
[in]eDeepModeDer Löschtiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

Erneute Implementation von glo::BasePersistent.

◆ getCreateDate()

virtual std::time_t glo::Persistent::getCreateDate ( ) const
overridevirtual

Liefert das Datum der Erstellung in der Datenbank.

Rückgabe
Das Erstellungsdatum.

Implementiert glo::BasePersistent.

◆ getGloAttribute() [1/2]

virtual void * glo::Persistent::getGloAttribute ( const AttributeID & rAttributeID)
virtual

Liefert einen Zeiger auf ein persistentes Attribut.

Parameter
[in]rAttributeIDDie Attribut-ID des zu liefernden Attributs.
Rückgabe
Der rohe Zeiger auf das persistente Attribut.
Ausnahmebehandlung
eut::ErrorNExceptionWenn Attribut nicht gefunden wird, wird eine Exception geworfen.
Achtung
Diese Methode muss in den Unterklassen, welche mindestens ein persistentes Attribute haben, überschrieben werden.
Zu beachten
Diese Funktion wird von ObjectMaker benötigt.

◆ getGloAttribute() [2/2]

virtual void * glo::Persistent::getGloAttribute ( const std::string & rstrAttributName)
virtual

Liefert einen Zeiger auf ein persistentes Attribut.

Parameter
[in]rstrAttributNameDer Name des zu setzenden Attributs (z.B. "ClassName.AttributName").
Rückgabe
Der rohe Zeiger auf das persistente Attribut.
Ausnahmebehandlung
eut::ErrorNExceptionWenn Attribut nicht gefunden wird, wird eine Exception geworfen.
Achtung
Diese Methode muss in den Unterklassen, welche mindestens ein persistentes Attribute haben, überschrieben werden.

◆ getGloClassID()

virtual unsigned long glo::Persistent::getGloClassID ( ) const
overridevirtual

Liefert die eigene Klassen-ID.

Rückgabe
Die Klassen-ID
Achtung
Muss in jeder Unterklasse überschrieben sein und die jeweilige Klassen-ID, welche mit dem Schema übereinstimmt, liefern!

Implementiert glo::BasePersistent.

◆ getLastChangeDate()

virtual std::time_t glo::Persistent::getLastChangeDate ( ) const
overridevirtual

Liefert das Datum der letzten Änderung in der Datenbank.

Rückgabe
Das Änderungsdatum.

Implementiert glo::BasePersistent.

◆ getObjID()

virtual ObjID glo::Persistent::getObjID ( ) const
overridevirtual
Rückgabe
Liefert die eindeutige ObjID.

Erneute Implementation von glo::BasePersistent.

◆ getTypeAsString()

virtual int glo::Persistent::getTypeAsString ( std::string & rsTypeName)
overridevirtual

Liefert die Klassenbezeichnung.

Parameter
[in,out]rsTypeNameDie Typbezeichnung.
Rückgabe
Wenn Rückgabewert < 0, ist ein Fehler aufgetreten.

Erneute Implementation von glo::BasePersistent.

◆ insertInObjectSpy()

virtual void glo::Persistent::insertInObjectSpy ( ) const
overrideprotectedvirtual

Fügt das Objekt in seinen ObjectSpy ein.

Implementiert glo::BasePersistent.

◆ isSameOrSuperClassFrom() [1/2]

virtual bool glo::Persistent::isSameOrSuperClassFrom ( const glo::Persistent * pPersistent) const
virtual

Prüft ob übergebenes Objekt auf dieses gecastet werden kann.

Parameter
[in]pPersistentZeiger auf das zu prüfende Objekt.
Rückgabe
Wenn true, ist übergebenes Objekt vom gleichen Typ oder eine Unterklasse vom Objekt dieser Klasse.

◆ isSameOrSuperClassFrom() [2/2]

virtual bool glo::Persistent::isSameOrSuperClassFrom ( const std::shared_ptr< glo::Persistent > pPersistent) const
virtual

Prüft ob übergebenes Objekt auf dieses gecastet werden kann.

Parameter
[in]pPersistentZeiger auf das zu prüfende Objekt.
Rückgabe
Wenn true, ist übergebenes Objekt vom gleichen Typ oder eine Unterklasse vom Objekt dieser Klasse.

◆ lock()

virtual int glo::Persistent::lock ( EnLockMode eLockMode = LK_DELETEvWRITE,
EnDeepMode eDeepMode = DM_SHALLOW )
overridevirtual

Das Objekt wird in der Datenbank für andere Clients gesperrt.
Es wird vor dem Sperren die Methode Persistent::preLock(EnLockMode,EnDeepMode,void*&) aufgerufen, der eine Zeigerreferenz (die in Persistent::preLock(EnLockMode,EnDeepMode,void*&) gesetzt werden kann) mitgegeben wird. Nach dem Sperren bzw. auch bei nicht gelingen, wird die Methode Persistent::postLock(int,EnLockMode,EnDeepMode,void*) aufgerufen.
Bei Bedarf können Persistent::preLock(EnLockMode,EnDeepMode,void*&) und Persistent::postLock(int,EnLockMode,EnDeepMode,void*) überschrieben werden.

Parameter
[in]eLockModeDer Sperrmodus.
[in]eDeepModeDer Sperrtiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Sperre aufzuheben muss die korrespondierende Methode unlock(EnLockMode, EnDeepMode) const mit gleichen Parameterwerten genutzt werden.
Siehe auch
Ein persistentes Objekt sperren.

Erneute Implementation von glo::BasePersistent.

◆ operator!=()

bool glo::Persistent::operator!= ( const Persistent & rT) const
protected

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ operator=()

Persistent & glo::Persistent::operator= ( const Persistent & rT)
protected

Zuweisungsoperator.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ operator==()

bool glo::Persistent::operator== ( const Persistent & rT) const
protected

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ postDeleteInBase()

virtual void glo::Persistent::postDeleteInBase ( int iDeleteErr,
EnDeepMode eDeepMode,
void * pData )
virtual

Wird in Persistent::deleteInBase(EnDeepMode) nach dem Löschen aufgerufen.

Parameter
[in]iDeleteErrGgf. ein Fehler beim Löschen. Wenn !=0 wurde das Löschen in Persistent::deleteInBase(EnDeepMode) nicht durchgeführt.
[in]eDeepModeDer Löschtiefenmodus.
[in]pDataDaten die in Persistent::preDeleteInBase(EnDeepMode,void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ postLock()

virtual void glo::Persistent::postLock ( int iLockErr,
EnLockMode eLockMode,
EnDeepMode eDeepMode,
void * pData )
virtual

Wird in Persistent::lock(EnLockMode,EnDeepMode) nach dem Versuch des Sperrens des Objektes aufgerufen.

Parameter
[in]iLockErrGgf. ein Fehler beim Sperren. Wenn !=0 wurde das Sperren in Persistent::lock(EnLockMode,EnDeepMode) nicht durchgeführt.
[in]eLockModeThe lock mode.
[in]eDeepModeThe lock depth mode.
[in]pDataDaten die in Persistent::preLock(EnLockMode,EnDeepMode,void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ postRefresh()

virtual void glo::Persistent::postRefresh ( int iRefreshErr,
void * pData )
virtual

Diese Methode wird in Persistent::refresh() nach dem dem Versuch des Wiedereinlesens der persistenten Attribute des Objekts aufgerufen.

Parameter
[in]iRefreshErrGgf. ein Fehler beim Wiedereinlesen. Wenn !=0 wurde das Wiedereinlesen in Persistent::refresh() nicht durchgeführt.
[in]pDataDaten die in Persistent::preRefresh(void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ postSetWatch()

virtual void glo::Persistent::postSetWatch ( int iSetWatchErr,
TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack,
void * pData )
virtual

Wird in Persistent::setWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nach dem Setzen der Überwachung aufgerufen.

Parameter
[in]iSetWatchErrGgf. ein Fehler bei dem Setzen der Überwachung. Wenn !=0 wurde das Setzen der Überwachung in Persistent::setWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nicht durchgeführt.
[in]ulWatchModeDer Überwachungsmodus.
[in]eDeepModeDer Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wird.
[in]pDataDaten die in Persistent::preSetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ postStore()

virtual void glo::Persistent::postStore ( int iStoreErr,
EnDeepMode eDeepMode,
void * pData )
virtual

Wird in Persistent::store(EnDeepMode) nach dem Speichern aufgerufen.

Parameter
[in]iStoreErrGgf. ein Fehler beim Speichern. Wenn !=0 wurde das Speichern in Persistent::store(EnDeepMode) nicht durchgeführt.
[in]eDeepModeDer Speichertiefenmodus.
[in]pDataDaten die in Persistent::preStore(EnDeepMode,void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ postUnlock()

virtual void glo::Persistent::postUnlock ( int iUnlockErr,
EnLockMode eLockMode,
EnDeepMode eDeepMode,
void * pData )
virtual

Wird in Persistent::unlock(EnLockMode,EnDeepMode) nach dem Versuch der Freigabe des Objektes aufgerufen.

Parameter
[in]iUnlockErrGgf. ein Fehler bei der Freigabe. Wenn !=0 wurde das Freigeben in Persistent::unlock(EnLockMode,EnDeepMode) nicht durchgeführt.
[in]eLockModeThe lock mode.
[in]eDeepModeThe lock depth mode.
[in]pDataDaten die in Persistent::preUnlock(EnLockMode,EnDeepMode,void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ postUnsetWatch()

virtual void glo::Persistent::postUnsetWatch ( int iUnsetWatchErr,
TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack,
void * pData )
virtual

Wird in Persistent::unsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nach dem Beenden der Überwachung aufgerufen.

Parameter
[in]iUnsetWatchErrGgf. ein Fehler bei dem Beenden der Überwachung. Wenn !=0 wurde das Beenden der Überwachung in Persistent::unsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nicht durchgeführt.
[in]ulWatchModeDer ursprüngliche Überwachungsmodus.
[in]eDeepModeDer ursprüngliche Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wurde.
[in]pDataDaten die in Persistent::preSetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ preDeleteInBase()

virtual int glo::Persistent::preDeleteInBase ( EnDeepMode eDeepMode,
void *& prData )
virtual

Wird in Persistent::deleteInBase(EnDeepMode) vor dem Löschen aufgerufen.

Parameter
[in]eDeepModeDer Löschtiefenmodus.
[in]prDataÜber diese Referenz kann Persistent::postDeleteInBase(int,EnDeepMode,void*) Daten übergeben werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn ein Fehler retour geliefert wird, wird das Löschen in Persistent::deleteInBase(EnDeepMode) nicht durchgeführt und liefert selbst den hier gelieferten Fehler.
Achtung
Wenn diese Methode überschrieben wird, darin diese NICHT aufrufen, da diese Methode hier immer den Fehler 0 liefert.
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ preLock()

virtual int glo::Persistent::preLock ( EnLockMode eLockMode,
EnDeepMode eDeepMode,
void *& prData )
virtual

Wird in Persistent::lock(EnLockMode,EnDeepMode) aufgerufen, bevor das Objekt in der Datenbank für andere Clients gesperrt wird.

Parameter
[in]eLockModeThe lock mode.
[in]eDeepModeThe lock depth mode.
[in]prDataÜber diese Referenz kann Persistent::postLock(int,EnLockMode,EnDeepMode,void*) Daten übergeben werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn ein Fehler retour geliefert wird, wird das Sperren in Persistent::lock(EnLockMode,EnDeepMode) nicht durchgeführt und liefert selbst den hier aufgetretenen Fehler.
Achtung
Wenn diese Methode überschrieben wird, darin diese NICHT aufrufen, da diese Methode hier immer den Fehler 0 liefert.
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ preRefresh()

virtual int glo::Persistent::preRefresh ( void *& prData)
virtual

Wird in Persistent::refresh() aufgerufen, bevor alle persistenten Attribute des Objekts aus der Datenbank neu eingelesen werden.

Parameter
[in]prDataÜber diese Referenz kann Persistent::postRefresh(int,void*) Daten übergeben werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn ein Fehler retour geliefert wird, wird das Wiedereinlesen in Persistent::refresh() nicht durchgeführt und liefert den hier aufgetretenen Fehler.
Achtung
Wenn diese Methode überschrieben wird, darin diese NICHT aufrufen, da diese Methode hier immer den Fehler 0 liefert.
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ preSetWatch()

virtual int glo::Persistent::preSetWatch ( TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack,
void *& prData )
virtual

Wird in Persistent::setWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) aufgerufen, bevor die Überwachung initiiert wird.

Parameter
[in]ulWatchModeDer Überwachungsmodus.
[in]eDeepModeDer Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wird.
[in]prDataÜber diese Referenz kann Persistent::postSetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) Daten übergeben werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn ein Fehler retour geliefert wird, wird die Überwachung in Persistent::setWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nicht durchgeführt und liefert den hier aufgetretenen Fehler.
Achtung
Wenn diese Methode überschrieben wird, darin diese NICHT aufrufen, da diese Methode hier immer den Fehler 0 liefert.
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ preStore()

virtual int glo::Persistent::preStore ( EnDeepMode eDeepMode,
void *& prData )
virtual

Wird in Persistent::store(EnDeepMode) vor dem Speichern aufgerufen.

Parameter
[in]eDeepModeDer Speichertiefenmodus.
[in]prDataÜber diese Referenz kann Persistent::postStore(int,EnDeepMode,void*) Daten übergeben werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn ein Fehler retour geliefert wird, wird das Speichern in Persistent::store(EnDeepMode) nicht durchgeführt und liefert selbst den hier gelieferten Fehler.
Achtung
Wenn diese Methode überschrieben wird, darin diese NICHT aufrufen, da diese Methode hier immer den Fehler 0 liefert.
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ preUnlock()

virtual int glo::Persistent::preUnlock ( EnLockMode eLockMode,
EnDeepMode eDeepMode,
void *& prData )
virtual

Wird in Persistent::unlock(EnLockMode,EnDeepMode) aufgerufen, bevor das Objekt in der Datenbank für andere Clients freigegeben wird.

Parameter
[in]eLockModeDer urspüngliche Sperrmodus.
[in]eDeepModeDer urspüngliche Sperrtiefenmodus.
[in]prDataÜber diese Referenz kann Persistent::postUnlock(int,EnLockMode,EnDeepMode,void*) Daten übergeben werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn ein Fehler retour geliefert wird, wird das Freigeben in Persistent::unlock(EnLockMode,EnDeepMode) nicht durchgeführt und liefert den hier aufgetretenen Fehler.
Achtung
Wenn diese Methode überschrieben wird, darin diese NICHT aufrufen, da diese Methode hier immer den Fehler 0 liefert.
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ preUnsetWatch()

virtual int glo::Persistent::preUnsetWatch ( TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack,
void *& prData )
virtual

Wird in Persistent::unsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) vor dem Beenden der Überwachung aufgerufen.

Parameter
[in]ulWatchModeDer ursprüngliche Überwachungsmodus.
[in]eDeepModeDer ursprüngliche Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wurde.
[in]prDataÜber diese Referenz kann Persistent::postunsetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) Daten übergeben werden.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn ein Fehler retour geliefert wird, wird die Überwachung in Persistent::unsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nicht beendet und liefert den hier aufgetretenen Fehler.
Achtung
Wenn diese Methode überschrieben wird, darin diese NICHT aufrufen, da diese Methode hier immer den Fehler 0 liefert.
Es muss darauf geachtet werden, dass keine Probleme mit zurkulären Aufrufen auftreten.

◆ refresh()

virtual int glo::Persistent::refresh ( )
overridevirtual

Liest alle persistenten Attribute des Objekts aus der Datenbank neu ein.
Es wird vor dem Wiedereinlesen die Methode Persistent::preRefresh(void*&) aufgerufen, der eine Zeigerreferenz (die in Persistent::preRefresh(void*&) gesetzt werden kann) mitgegeben wird. Nach dem Wiedereinlesen bzw. auch bei nicht gelingen, wird die Methode Persistent::postRefresh(int,void*) aufgerufen.
Bei Bedarf können Persistent::preRefresh(void*&) und Persistent::postRefresh(int,void*) überschrieben werden.

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Wenn das Objekt in einer noch nicht abgeschlossenen Transaktion ist, werden die Werte aus der Transaktion geholt.
Siehe auch
GlobalObjects Transaktion.

Erneute Implementation von glo::BasePersistent.

◆ removeBase()

virtual void glo::Persistent::removeBase ( )
overridevirtual

Entfernt die Referenz auf die Datenbank und entfernt sich aus dem PersObjectSpy, wenn drinn.

Erneute Implementation von glo::BasePersistent.

◆ removeInObjectSpy()

virtual void glo::Persistent::removeInObjectSpy ( ) const
overrideprotectedvirtual

Entfernt das Objekt aus seinem ObjectSpy.

Implementiert glo::BasePersistent.

◆ setCreateDate()

virtual void glo::Persistent::setCreateDate ( )
overrideprotectedvirtual

Setzt das Erstellungsdatum auf 'jetzt'.

Implementiert glo::BasePersistent.

◆ setGloAttribute() [1/2]

virtual int glo::Persistent::setGloAttribute ( const AttributeID & rAttributeID,
void * pPara )
virtual

Setzt ein persistentes Attribut.

Parameter
[in]rAttributeIDDie Attribut-ID des zu setzenden Attributs
[in]pParaDer zu setzende Wert als roher Zeiger, intern wird ein static_cast vorgenommen!
Rückgabe
Wenn Attribut nicht gefunden wird, wird ERR_ATTRIBUTE_NOT_IN_SOURCE_OBJECT retour geliefert.
Achtung
Diese Methode muss in den Unterklassen, welche mindestens ein persistentes Attribute haben, überschrieben werden.
Zu beachten
Diese Funktion wird von ObjectMaker benötigt.

◆ setGloAttribute() [2/2]

virtual int glo::Persistent::setGloAttribute ( const std::string & rstrAttributName,
void * pPara )
virtual

Setzt ein persistentes Attribut.

Parameter
[in]rstrAttributNameDer Name des zu setzenden Attributs (z.B. "ClassName.AttributName").
[in]pParaDer zu setzende Wert als Void-Pointer, intern wird ein static_cast vorgenommen!
Rückgabe
Wenn Attribut nicht gefunden wird, wird ERR_ATTRIBUTE_NOT_IN_SOURCE_OBJECT retour geliefert.
Achtung
Diese Methode muss in den Unterklassen, welche mindestens ein persistentes Attribute haben, überschrieben werden.

◆ setWatch()

virtual int glo::Persistent::setWatch ( TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack = 0 )
overridevirtual

Das Objekt wird in der Datenbank überwacht.
Es wird vor dem Überwachen des Objekts die Methode Persistent::preSetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) aufgerufen, der eine Zeigerreferenz (die in Persistent::preSetWatch(TdWatchNotifyMode,EnDeepMode,CallBack,void*&) gesetzt werden kann) mitgegeben wird. Nach dem Überwachungsauftrag bzw. auch bei nicht gelingen, wird die Methode Persistent::postSetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) aufgerufen.
Bei Bedarf können Persistent::preSetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) und Persistent::postSetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) überschrieben werden.

Parameter
[in]ulWatchModeDer Überwachungsmodus.
Erlaubte Überwachungsmodi:
[in]eDeepModeDer Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wird. Wenn kein CallBack übergeben, wird notify(NotifyNote&) von this genommen; in diesem Fall sollte die Methode notify(NotifyNote&) in der jeweiligen abgeleiteten Klasse überschrieben sein.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Um die Überwachung aufzuheben muss die korrespondierende Methode unsetWatch(TdWatchNotifyMode, EnDeepMode, CallBack*) const mit gleichen Parameterwerten genutzt werden.
Achtung
Grundsätzlich darf pCallBack nicht zerstört werden, bevor die Überwachung aufgehoben wurde!
Siehe auch
Beobachten und benachrichtigen.

Erneute Implementation von glo::BasePersistent.

◆ store()

virtual int glo::Persistent::store ( EnDeepMode eDeepMode = DM_SHALLOW)
overridevirtual

Das Objekt bzw. dessen persistenten Attribute, werden in der Datenbank gespeichert.
Es wird vor dem Speichern die Methode Persistent::preStore(EnDeepMode,void*&) aufgerufen, der zusätzlich zum glo::EnDeepMode eine Zeigerreferenz (die in Persistent::preStore(EnDeepMode,void*&) gesetzt werden kann) mitgegeben wird. Nach dem Speichern bzw. auch bei nicht gelingen, wird die Methode Persistent::postStore(int,EnDeepMode,void*) aufgerufen.
Bei Bedarf können Persistent::preStore(EnDeepMode,void*&) und Persistent::postStore(int,EnDeepMode,void*) überschrieben werden.

Parameter
[in]eDeepModeDer Speichertiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Das Objekt muss der Datenbank bekannt sein bzw. dort angemeldet sein.
Siehe auch
BasePersistent::assign(Base&)

Erneute Implementation von glo::BasePersistent.

◆ takeOverRecord()

virtual void glo::Persistent::takeOverRecord ( Record * pRecord)
overridevirtual

Übernimmt überlieferten Datensatz wenn ungleich NULL_PTR. Wenn ein gültiger Datensatz übergeben ist, werden m_dtCreateDate und m_dtLastChange aus dem Datensatz übernommen.

Parameter
[in]pRecordDer zu übernehmende Datensatz.

Erneute Implementation von glo::BasePersistent.

◆ unlock()

virtual int glo::Persistent::unlock ( EnLockMode eLockMode = LK_DELETEvWRITE,
EnDeepMode eDeepMode = DM_SHALLOW )
overridevirtual

Das Objekt wird in der Datenbank freigegeben. Eine Sperrfreigabe muss mit den gleichen Parametern wie der vorherige Sperraufruf aufgerufen werden.
Es wird vor dem Freigeben die Methode Persistent::preUnlock(EnLockMode,EnDeepMode,void*&) aufgerufen, der eine Zeigerreferenz (die in Persistent::preUnlock(EnLockMode,EnDeepMode,void*&) gesetzt werden kann) mitgegeben wird. Nach dem Freigeben bzw. auch bei nicht gelingen, wird die Methode Persistent::postUnlock(int,EnLockMode,EnDeepMode,void*) aufgerufen.
Bei Bedarf können Persistent::preUnlock(EnLockMode,EnDeepMode,void*&) und Persistent::postUnlock(int,EnLockMode,EnDeepMode,void*) überschrieben werden.

Parameter
[in]eLockModeDer urspüngliche Sperrmodus.
[in]eDeepModeDer urspüngliche Sperrtiefenmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Sperre auf, die durch die korrespondierende Methode lock(EnLockMode, EnDeepMode) const initiiet wurde, wenn die Parameter die selben Werte haben.
Siehe auch
Ein persistentes Objekt sperren.

Erneute Implementation von glo::BasePersistent.

◆ unsetWatch()

virtual int glo::Persistent::unsetWatch ( TdWatchNotifyMode ulWatchMode,
EnDeepMode eDeepMode,
CallBack * pCallBack = 0 )
overridevirtual

Die Überwachung des Objekts in der Datenbank wird beendet. Eine Überwachungsbeendigung muss mit den gleichen Parametern wie die vorherige Überwachung aufgerufen werden.
Es wird vor dem Beenden der Überwachung die Methode Persistent::preUnsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) aufgerufen, der eine Zeigerreferenz (die in Persistent::preUnsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack,void*&) gesetzt werden kann) mitgegeben wird. Nach dem Beenden der Überwachung bzw. auch bei nicht gelingen, wird die Methode Persistent::postUnsetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) aufgerufen.
Bei Bedarf können Persistent::preUnsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) und Persistent::postUnsetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) überschrieben werden.

Parameter
[in]ulWatchModeDer ursprüngliche Überwachungsmodus.
Erlaubte Überwachungsmodi:
[in]eDeepModeDer ursprüngliche Überwachungstiefenmodus.
[in]pCallBackDas CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wurde. Wenn kein CallBack übergeben, wird notify(NotifyNote&) von this genommen; in diesem Fall sollte die Methode notify(NotifyNote&) in der jeweiligen abgeleiteten Klasse überschrieben sein.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Hebt die Überwachung auf, die durch die korrespondierende Methode setWatch(TdWatchNotifyMode, EnDeepMode, CallBack*) const initiiet wurde, wenn die Parameter die selben Werte haben.
Siehe auch
Beobachten und benachrichtigen.

Erneute Implementation von glo::BasePersistent.

Dokumentation der Datenelemente

◆ m_dtCreateDate

std::time_t glo::Persistent::m_dtCreateDate
private

Das Erstellungsdatum, wird bei erfolgreichem anmelden in einer Datenbank gesetzt.

◆ m_dtLastChange

std::time_t glo::Persistent::m_dtLastChange
private

Das letzte Änderungsdatum in der Datenbank, wird bei erfolgreichem speichern in einer Datenbank gesetzt.

◆ m_ObjID

ObjID glo::Persistent::m_ObjID
private

Die ObjID. Wenn ein Datensatz referenziert wird, wird die ObjID aus diesem geholt.


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