GlobalObjects
|
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>
Öffentliche Methoden | |
Persistent () | |
Persistent (const Persistent &rT) | |
virtual void | activate () |
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 | postRelock (int iLockErr, EnLockMode eLockMode, EnDeepMode eDeepMode, 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 | preRelock (EnLockMode eLockMode, EnDeepMode eDeepMode, 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 int | relock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) 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 &rT) | |
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 Base * | getBase () const override |
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) |
BasePersistent & | operator= (const BasePersistent &rT) |
virtual int | relock (const LockSpecification &rLockSpecification) |
virtual unsigned int | remember () |
virtual int | setBase (Base *pBase) override |
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 () | |
virtual | ~CallBack () |
virtual void | notify (NotifyNote &rNote) |
CallBack & | operator= (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 | _postAssign (Base &rBase) |
virtual void | insertInObjectSpy () const override |
Persistent & | operator= (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) | |
void | deinit () |
void | init () |
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 |
Base * | m_pBase |
Record * | m_pRecord |
unsigned int | m_uiReferenceCount |
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):
glo::Persistent::Persistent | ( | ) |
Standard-Konstruktor.
|
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.
glo::Persistent::Persistent | ( | const Persistent & | rT | ) |
Copy-Konstruktor. Es werden keine Attribute dieser Klasse kopiert!
|
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.
[in] | rBase | Die Datenbank, in der das Objekt gespeichert wird. |
|
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.
|
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.
[in] | rBase | Die Datenbank, in der das Objekt gespeichert werden soll. |
Erneute Implementation von glo::BasePersistent.
|
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.
[in] | eDeepMode | Der Löschtiefenmodus. |
Erneute Implementation von glo::BasePersistent.
|
overridevirtual |
Liefert das Datum der Erstellung in der Datenbank.
Implementiert glo::BasePersistent.
|
virtual |
Liefert einen Zeiger auf ein persistentes Attribut.
[in] | rAttributeID | Die Attribut-ID des zu liefernden Attributs. |
eut::ErrorNException | Wenn Attribut nicht gefunden wird, wird eine Exception geworfen. |
|
virtual |
Liefert einen Zeiger auf ein persistentes Attribut.
[in] | rstrAttributName | Der Name des zu setzenden Attributs (z.B. "ClassName.AttributName"). |
eut::ErrorNException | Wenn Attribut nicht gefunden wird, wird eine Exception geworfen. |
|
overridevirtual |
Liefert die eigene Klassen-ID.
Implementiert glo::BasePersistent.
|
overridevirtual |
Liefert das Datum der letzten Änderung in der Datenbank.
Implementiert glo::BasePersistent.
|
overridevirtual |
Erneute Implementation von glo::BasePersistent.
|
overridevirtual |
Liefert die Klassenbezeichnung.
[in,out] | rsTypeName | Die Typbezeichnung. |
Erneute Implementation von glo::BasePersistent.
|
overrideprotectedvirtual |
Fügt das Objekt in seinen ObjectSpy ein.
Implementiert glo::BasePersistent.
|
virtual |
Prüft ob übergebenes Objekt auf dieses gecastet werden kann.
[in] | pPersistent | Zeiger auf das zu prüfende Objekt. |
|
virtual |
Prüft ob übergebenes Objekt auf dieses gecastet werden kann.
[in] | pPersistent | Zeiger auf das zu prüfende Objekt. |
|
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.
[in] | eLockMode | Der Sperrmodus. |
[in] | eDeepMode | Der Sperrtiefenmodus. |
Erneute Implementation von glo::BasePersistent.
|
protected |
Vergleichsoperator.
[in] | rT | Das mit diesem zu vergleichende Objekt. |
|
protected |
Zuweisungsoperator.
[in] | rT | Von diesem Objekt werden die Daten übernommen. |
|
protected |
Vergleichsoperator.
[in] | rT | Das mit diesem zu vergleichende Objekt. |
|
virtual |
Wird in Persistent::deleteInBase(EnDeepMode) nach dem Löschen in der Datenbank bzw. bei fehlgeschlagenem Löschen aufgerufen.
[in] | iDeleteErr | Ggf. ein Fehler beim Löschen. Wenn !=0 wurde das Löschen in Persistent::deleteInBase(EnDeepMode) nicht durchgeführt. |
[in] | eDeepMode | Der Löschtiefenmodus. |
[in] | pData | Daten die in Persistent::preDeleteInBase(EnDeepMode,void*&) ggf. gesetzt wurden. |
|
virtual |
Wird in Persistent::lock(EnLockMode,EnDeepMode) nach dem Versuch des Sperrens des Objektes aufgerufen.
[in] | iLockErr | Ggf. ein Fehler beim Sperren. Wenn !=0 wurde das Sperren in Persistent::lock(EnLockMode,EnDeepMode) nicht durchgeführt. |
[in] | eLockMode | The lock mode. |
[in] | eDeepMode | The lock depth mode. |
[in] | pData | Daten die in Persistent::preLock(EnLockMode,EnDeepMode,void*&) ggf. gesetzt wurden. |
|
virtual |
Diese Methode wird in Persistent::refresh() nach dem dem Versuch des Wiedereinlesens der persistenten Attribute des Objekts aufgerufen.
[in] | iRefreshErr | Ggf. ein Fehler beim Wiedereinlesen. Wenn !=0 wurde das Wiedereinlesen in Persistent::refresh() nicht durchgeführt. |
[in] | pData | Daten die in Persistent::preRefresh(void*&) ggf. gesetzt wurden. |
|
virtual |
Wird in Persistent::lock(EnLockMode,EnDeepMode) nach dem Versuch des Sperrens des Objektes aufgerufen.
[in] | iLockErr | Ggf. ein Fehler beim Sperren. Wenn !=0 wurde das Sperren in Persistent::lock(EnLockMode,EnDeepMode) nicht durchgeführt. |
[in] | eLockMode | The lock mode. |
[in] | eDeepMode | The lock depth mode. |
[in] | pData | Daten die in Persistent::preRelock(EnLockMode,EnDeepMode,void*&) ggf. gesetzt wurden. |
|
virtual |
Wird in Persistent::setWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nach dem Setzen der Überwachung aufgerufen.
[in] | iSetWatchErr | Ggf. ein Fehler bei dem Setzen der Überwachung. Wenn !=0 wurde das Setzen der Überwachung in Persistent::setWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nicht durchgeführt. |
[in] | ulWatchMode | Der Überwachungsmodus. |
[in] | eDeepMode | Der Überwachungstiefenmodus. |
[in] | pCallBack | Das CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wird. |
[in] | pData | Daten die in Persistent::preSetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) ggf. gesetzt wurden. |
|
virtual |
Wird in Persistent::store(EnDeepMode) nach dem Speichern aufgerufen.
[in] | iStoreErr | Ggf. ein Fehler beim Speichern. Wenn !=0 wurde das Speichern in Persistent::store(EnDeepMode) nicht durchgeführt. |
[in] | eDeepMode | Der Speichertiefenmodus. |
[in] | pData | Daten die in Persistent::preStore(EnDeepMode,void*&) ggf. gesetzt wurden. |
|
virtual |
Wird in Persistent::unlock(EnLockMode,EnDeepMode) nach dem Versuch der Freigabe des Objektes aufgerufen.
[in] | iUnlockErr | Ggf. ein Fehler bei der Freigabe. Wenn !=0 wurde das Freigeben in Persistent::unlock(EnLockMode,EnDeepMode) nicht durchgeführt. |
[in] | eLockMode | The lock mode. |
[in] | eDeepMode | The lock depth mode. |
[in] | pData | Daten die in Persistent::preUnlock(EnLockMode,EnDeepMode,void*&) ggf. gesetzt wurden. |
|
virtual |
Wird in Persistent::unsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nach dem Beenden der Überwachung aufgerufen.
[in] | iUnsetWatchErr | Ggf. ein Fehler bei dem Beenden der Überwachung. Wenn !=0 wurde das Beenden der Überwachung in Persistent::unsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) nicht durchgeführt. |
[in] | ulWatchMode | Der ursprüngliche Überwachungsmodus. |
[in] | eDeepMode | Der ursprüngliche Überwachungstiefenmodus. |
[in] | pCallBack | Das CallBack-Objekt, welches über seine Methode CallBack::notify(NotifyNote&) benachrichtigt wurde. |
[in] | pData | Daten die in Persistent::preSetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*,void*&) ggf. gesetzt wurden. |
|
virtual |
Wird in Persistent::deleteInBase(EnDeepMode) vor dem Löschen aufgerufen.
[in] | eDeepMode | Der 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. |
|
virtual |
Wird in Persistent::lock(EnLockMode,EnDeepMode) aufgerufen, bevor das Objekt in der Datenbank für andere Clients gesperrt wird.
[in] | eLockMode | The lock mode. |
[in] | eDeepMode | The 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. |
|
virtual |
Wird in Persistent::refresh() aufgerufen, bevor alle persistenten Attribute des Objekts aus der Datenbank neu eingelesen werden.
[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. |
|
virtual |
Wird in Persistent::lock(EnLockMode,EnDeepMode) aufgerufen, bevor das Objekt in der Datenbank für andere Clients neu gesperrt wird.
[in] | eLockMode | The lock mode. |
[in] | eDeepMode | The 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. |
|
virtual |
Wird in Persistent::setWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) aufgerufen, bevor die Überwachung initiiert wird.
[in] | ulWatchMode | Der Überwachungsmodus. |
[in] | eDeepMode | Der Überwachungstiefenmodus. |
[in] | pCallBack | Das 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. |
|
virtual |
Wird in Persistent::store(EnDeepMode) vor dem Speichern aufgerufen.
[in] | eDeepMode | Der 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. |
|
virtual |
Wird in Persistent::unlock(EnLockMode,EnDeepMode) aufgerufen, bevor das Objekt in der Datenbank für andere Clients freigegeben wird.
[in] | eLockMode | Der urspüngliche Sperrmodus. |
[in] | eDeepMode | Der 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. |
|
virtual |
Wird in Persistent::unsetWatch(TdWatchNotifyMode,EnDeepMode,CallBack*) vor dem Beenden der Überwachung aufgerufen.
[in] | ulWatchMode | Der ursprüngliche Überwachungsmodus. |
[in] | eDeepMode | Der ursprüngliche Überwachungstiefenmodus. |
[in] | pCallBack | Das 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. |
|
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.
Erneute Implementation von glo::BasePersistent.
|
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.
[in] | eLockMode | Der Sperrmodus. |
[in] | eDeepMode | Der Sperrtiefenmodus. |
Erneute Implementation von glo::BasePersistent.
|
overridevirtual |
Entfernt die Referenz auf die Datenbank und entfernt sich aus dem PersObjectSpy, wenn drinn.
Erneute Implementation von glo::BasePersistent.
|
overrideprotectedvirtual |
Entfernt das Objekt aus seinem ObjectSpy.
Implementiert glo::BasePersistent.
|
overrideprotectedvirtual |
Setzt das Erstellungsdatum auf 'jetzt'.
Implementiert glo::BasePersistent.
|
virtual |
Setzt ein persistentes Attribut.
[in] | rAttributeID | Die Attribut-ID des zu setzenden Attributs |
[in] | pPara | Der zu setzende Wert als roher Zeiger, intern wird ein static_cast vorgenommen! |
|
virtual |
Setzt ein persistentes Attribut.
[in] | rstrAttributName | Der Name des zu setzenden Attributs (z.B. "ClassName.AttributName"). |
[in] | pPara | Der zu setzende Wert als Void-Pointer, intern wird ein static_cast vorgenommen! |
|
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.
[in] | ulWatchMode | Der Überwachungsmodus. Erlaubte Überwachungsmodi:
|
[in] | eDeepMode | Der Überwachungstiefenmodus. |
[in] | pCallBack | Das 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. |
Erneute Implementation von glo::BasePersistent.
|
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.
[in] | eDeepMode | Der Speichertiefenmodus. |
Erneute Implementation von glo::BasePersistent.
|
overridevirtual |
Übernimmt überlieferten Datensatz wenn ungleich nullptr. Wenn ein gültiger Datensatz übergeben ist, werden m_dtCreateDate und m_dtLastChange aus dem Datensatz übernommen.
[in] | pRecord | Der zu übernehmende Datensatz. |
Erneute Implementation von glo::BasePersistent.
|
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.
[in] | eLockMode | Der urspüngliche Sperrmodus. |
[in] | eDeepMode | Der urspüngliche Sperrtiefenmodus. |
Erneute Implementation von glo::BasePersistent.
|
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.
[in] | ulWatchMode | Der ursprüngliche Überwachungsmodus. Erlaubte Überwachungsmodi:
|
[in] | eDeepMode | Der ursprüngliche Überwachungstiefenmodus. |
[in] | pCallBack | Das 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. |
Erneute Implementation von glo::BasePersistent.
|
private |
Das Erstellungsdatum, wird bei erfolgreichem anmelden in einer Datenbank gesetzt.
|
private |
Das letzte Änderungsdatum in der Datenbank, wird bei erfolgreichem speichern in einer Datenbank gesetzt.
|
private |