BankAndCustomer
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:
Zusammengehörigkeiten von glo::Persistent:

Öffentliche Methoden

 Persistent ()
 
 Persistent (const Persistent &rT)
 
virtual void activate ()
 
virtual int assign (Base &rBase) override
 
virtual void removeBase () override
 
virtual ObjID getObjID () const override
 
virtual std::time_t getCreateDate () const override
 
virtual std::time_t getLastChangeDate () const override
 
virtual void takeOverRecord (Record *pRecord) override
 
virtual int preStore (EnDeepMode eDeepMode, void *&prData)
 
virtual int store (EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postStore (int iStoreErr, EnDeepMode eDeepMode, void *pData)
 
virtual int preDeleteInBase (EnDeepMode eDeepMode, void *&prData)
 
virtual int deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postDeleteInBase (int iDeleteErr, EnDeepMode eDeepMode, void *pData)
 
virtual int preRefresh (void *&prData)
 
virtual int refresh () override
 
virtual void postRefresh (int iRefreshErr, void *pData)
 
virtual int preLock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postLock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual int preRelock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int relock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postRelock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual int preUnlock (EnLockMode eLockMode, EnDeepMode eDeepMode, void *&prData)
 
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) override
 
virtual void postUnlock (int iUnlockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, void *pData)
 
virtual int preSetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
 
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
 
virtual void postSetWatch (int iSetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
 
virtual int preUnsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *&prData)
 
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) override
 
virtual void postUnsetWatch (int iUnsetWatchErr, TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack, void *pData)
 
virtual unsigned long getGloClassID () const override
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
virtual int setGloAttribute (const AttributeID &rAttributeID, void *pPara)
 
virtual void * getGloAttribute (const AttributeID &rAttributeID)
 
virtual int setGloAttribute (const std::string &rstrAttributName, void *pPara)
 
virtual void * getGloAttribute (const std::string &rstrAttributName)
 
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 &rT)
 
virtual int setBase (Base *pBase) override
 
virtual Base * getBase () const override
 
virtual int getClassInfo (ClassInfo *&prClassInfo)
 
virtual unsigned int remember ()
 
virtual unsigned int forget ()
 
virtual bool isAssigned () const
 
unsigned int getLinkCount () const
 
int getRecord (Record *&prRecord) const
 
int getRecord (std::shared_ptr< Record > &rRetVal) const
 
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 getPersAttribute (BaseRecordAttribute *&prRetVal, const std::string &sName) const
 
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const std::string &sName) const
 
int getPersAttribute (BaseRecordAttribute *&prRetVal, const AttributeID &rAttributeID) const
 
int getPersAttribute (std::shared_ptr< BaseRecordAttribute > &rRetVal, const AttributeID &rAttributeID) 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 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
 
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
 
virtual bool isStored ()
 
virtual bool isDeletedInBase ()
 
virtual int lock (const LockSpecification &rLockSpecification)
 
virtual int relock (const LockSpecification &rLockSpecification)
 
virtual int unlock (const LockSpecification &rLockSpecification)
 
virtual int isLocked (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int isLocked (const LockSpecification &rLockSpecification) 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 int getProcessingPossibilities (LockPossibleSpecification &rLockPossibleSpec, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int setWatch (const WatchSpecification &rWatchSpec)
 
virtual int unsetWatch (const WatchSpecification &rWatchSpec)
 
BasePersistentoperator= (const BasePersistent &rT)
 
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 ()
 
virtual ~CallBack ()
 
virtual void notify (NotifyNote &rNote)
 
CallBackoperator= (const CallBack &rT)
 
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 insertInObjectSpy () const override
 
virtual void removeInObjectSpy () const override
 
virtual void setCreateDate () override
 
virtual void _postAssign (Base &rBase)
 
Persistentoperator= (const Persistent &rT)
 
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)
 
void init ()
 
void deinit ()
 

Private Attribute

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

Weitere Geerbte Elemente

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

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.
Diese fehlerträchtige Methode kann durch Nutzung des std::shared_ptr, wenn beim Instantiieren eines persistenten Objekts der Forgetter mit übergeben wird, vermieden werden.
Beispiel (PersClass ist die persistente Klasse):

std::shared_ptr<PersClass> t_NewPersObject( new PersClass(), glo::Forgetter<PersClass>() );
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.

◆ activate()

virtual void glo::Persistent::activate ( )
virtual

Wird grundsätzlich nach einer Instanziierung aus der Datenbank aufgerufen.
Es können hier in abgeleiteten Klassen z.B. Zeiger auf nullptr gesetzt, 'nicht-persistente' Variablen gesetzt und/oder andere Initialisierungen vorgenommen 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 Persistent::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 in der Datenbank bzw. bei fehlgeschlagenem 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 zirkulä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 zirkulä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 zirkulären Aufrufen auftreten.

◆ postRelock()

virtual void glo::Persistent::postRelock ( 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::preRelock(EnLockMode,EnDeepMode,void*&) ggf. gesetzt wurden.
Achtung
Es muss darauf geachtet werden, dass keine Probleme mit zirkulä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 zirkulä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 zirkulä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 zirkulä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 zirkulä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 der Persistent::postDeleteInBase(int,EnDeepMode,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postDeleteInBase(int,EnDeepMode,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulä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 der Persistent::postLock(int,EnLockMode,EnDeepMode,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postLock(int,EnLockMode,EnDeepMode,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulä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 der Persistent::postRefresh(int,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postRefresh(int,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulären Aufrufen auftreten.

◆ preRelock()

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

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

Parameter
[in]eLockModeThe lock mode.
[in]eDeepModeThe lock depth mode.
[in]prDataÜber diese Referenz kann der Persistent::postRelock(int,EnLockMode,EnDeepMode,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postRelock(int,EnLockMode,EnDeepMode,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulä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 der Persistent::postSetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postSetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulä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 der Persistent::postStore(int,EnDeepMode,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postStore(int,EnDeepMode,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulä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 der Persistent::postUnlock(int,EnLockMode,EnDeepMode,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postUnlock(int,EnLockMode,EnDeepMode,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulä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 der Persistent::postUnsetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*), in dieser Method instantiierte Daten übergeben werden, welche dann in Persistent::postUnsetWatch(int,TdWatchNotifyMode,EnDeepMode,CallBack*,void*) wieder aus dem Speicher entfernt werden müssen.
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 zirkulä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.

◆ relock()

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

Diese Methode führt ein unlock(const LockSpecification&) und anschließendes lock(const LockSpecification&) eines schon gesperrten Objekts aus, womit neu referenzierte Objekte je nach Sperrmodus, wenn möglich, mitgesperrt werden und vorherige mitgesperrte referenzierte Objekte freigegeben werden. Wenn neu referenzierte Objekte nicht gesperrt werden können, wird der vorherige Sperrzustand beibehalten.
Es wird vor dem neuen Sperren die Methode Persistent::preRelock(EnLockMode,EnDeepMode,void*&) aufgerufen, der eine Zeigerreferenz (die in Persistent::preRelock(EnLockMode,EnDeepMode,void*&) gesetzt werden kann) mitgegeben wird. Nach dem neuen Sperren bzw. auch bei nicht gelingen, wird die Methode Persistent::postRelock(int,EnLockMode,EnDeepMode,void*) aufgerufen.
Bei Bedarf können Persistent::preRelock(EnLockMode,EnDeepMode,void*&) und Persistent::postRelock(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 Persistent::unlock(EnLockMode, EnDeepMode) const mit gleichen Parameterwerten genutzt werden.
Siehe auch
Ein persistentes Objekt sperren.

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:
  • ::WNM_WRITE = schreiben wird gemeldet
  • ::WNM_WRITE_TRANSACTION = wie ::WNM_WRITE, wird in einer Transaktion ausgelöst
  • ::WNM_DELETE = löschen wird gemeldet
  • ::WNM_DELETE_TRANSACTION = wie ::WNM_DELETE, wird in einer Transaktion ausgelöst
  • ::WNM_LOCK = sperren wird gemeldet
  • ::WNM_UNLOCK = freigeben wird gemeldet
[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 Persistent::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 nullptr. 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 Persistent::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:
  • ::WNM_WRITE = schreiben wird gemeldet
  • ::WNM_WRITE_TRANSACTION = wie ::WNM_WRITE, wird in einer Transaktion ausgelöst
  • ::WNM_DELETE = löschen wird gemeldet
  • ::WNM_DELETE_TRANSACTION = wie ::WNM_DELETE, wird in einer Transaktion ausgelöst
  • ::WNM_LOCK = sperren wird gemeldet
  • ::WNM_UNLOCK = freigeben wird gemeldet
[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 Persistent::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: