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

Generische persistente Klasse. Benötigt keinen ObjCreator oder ObjectMaker. Es können Objekte aus der Datenbank bearbeitet werden, ohne den Typ kennen zu müssen. Mehr ...

#include <GloGenericPersistent.h>

Klassendiagramm für glo::GenericPersistent:

Öffentliche Methoden

 GenericPersistent (unsigned long ulDBClassID)
 
virtual unsigned int forget () override
 
virtual std::time_t getCreateDate () const override
 
virtual unsigned long getGloClassID () const override
 
virtual std::time_t getLastChangeDate () const override
 
ObjID getObjID () const override
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
virtual unsigned int remember () override
 
virtual void removeBase () override
 
virtual void takeOverRecord (Record *pRecord) override
 
bool operator== (const GenericPersistent &rT) const
 Vergleichsoperator.
 
bool operator!= (const GenericPersistent &rT) const
 Vergleichsoperator.
 
- Öffentliche Methoden geerbt von glo::BasePersistent
 BasePersistent ()
 
 BasePersistent (const BasePersistent &rT)
 
virtual int assign (Base &rBase)
 
virtual int deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW)
 
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 BasegetBase () 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)
 
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW)
 
BasePersistentoperator= (const BasePersistent &rT)
 
virtual int refresh ()
 
virtual int relock (const LockSpecification &rLockSpecification)
 
virtual int relock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW)
 
virtual int setBase (Base *pBase) override
 
virtual int setWatch (const WatchSpecification &rWatchSpec)
 
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0)
 
virtual int store (EnDeepMode eDeepMode=DM_SHALLOW)
 
virtual int unlock (const LockSpecification &rLockSpecification)
 
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW)
 
virtual int unsetWatch (const WatchSpecification &rWatchSpec)
 
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0)
 
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 ~GenericPersistent ()
 
virtual void insertInObjectSpy () const override
 
virtual void removeInObjectSpy () const override
 
virtual void setCreateDate () override
 
- 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 Methoden

 GenericPersistent ()
 
 GenericPersistent (const GenericPersistent &)
 
GenericPersistentoperator= (const GenericPersistent &)
 

Private Attribute

unsigned long m_ulClassID
 

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
 
Basem_pBase
 
Recordm_pRecord
 
unsigned int m_uiReferenceCount
 

Ausführliche Beschreibung

Generische persistente Klasse. Benötigt keinen ObjCreator oder ObjectMaker. Es können Objekte aus der Datenbank bearbeitet werden, ohne den Typ kennen zu müssen.

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 wird über GenericPersistent::remember() der Referenzzähler inkrementiert.

Wenn die jetzt besitzende Instanz das Objekt nicht mehr braucht, wird über GenericPersistent::forget() der Referenzzähler dekrementiert. Wenn der Referenzzähler auf 0 läuft, wird der Destruktors aufgerufen.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ GenericPersistent() [1/3]

glo::GenericPersistent::GenericPersistent ( )
private

Der Standard-Konstruktor steht niccht zur Verfügung.

◆ GenericPersistent() [2/3]

glo::GenericPersistent::GenericPersistent ( unsigned long ulDBClassID)

Objekte dieser Klasse müssen mit einer Klasen-ID aus dem Schema instanziiert werden.

Parameter
[in]ulDBClassIDDie Klassen-ID aus dem Schema.
Ausnahmebehandlung
eut::ErrorNExceptionWenn ulDBClassID <= 0 wird eine Exception geworfen

◆ ~GenericPersistent()

virtual glo::GenericPersistent::~GenericPersistent ( )
protectedvirtual

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

◆ GenericPersistent() [3/3]

glo::GenericPersistent::GenericPersistent ( const GenericPersistent & )
private

Der Copy-Konstruktor steht niccht zur Verfügung.

Dokumentation der Elementfunktionen

◆ forget()

virtual unsigned int glo::GenericPersistent::forget ( )
overridevirtual

Ein Objekt dieser Klasse sollte immer mit einem vorherigen Aufruf von BasePersistent::remember() ausgeliefert werden. Die belieferte Instanz muss dann das Objekt mittels dieser Methode wieder 'vergessen'.

Rückgabe
Der Rückgabewert ist die Anzahl der Referenzen auf das Objekt dieser Klasse.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird eine Exception geworfen, wenn der Referenzzähler ins Minus laufen möchte.
Zu beachten
Es wird empfohlen, wenn möglich, die Verwendung von std::shared_ptr in Verbindung mit Forgetter in Betracht zu ziehen.

Erneute Implementation von glo::BasePersistent.

◆ getCreateDate()

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

Liefert das Datum der Erstellung in der Datenbank.

Rückgabe
Das Erstellungsdatum.

Implementiert glo::BasePersistent.

◆ getGloClassID()

virtual unsigned long glo::GenericPersistent::getGloClassID ( ) const
overridevirtual
Rückgabe
Die Klassen-ID

Implementiert glo::BasePersistent.

◆ getLastChangeDate()

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

Liefert das Datum der letzten Änderung in der Datenbank.

Rückgabe
Das Änderungsdatum.

Implementiert glo::BasePersistent.

◆ getObjID()

ObjID glo::GenericPersistent::getObjID ( ) const
overridevirtual

Liefert die Objekt-ID wenn vorhanden.

Rückgabe
Die ObjID, ist NULL wenn nicht vorhanden bzw. Objekt nicht an Datenbank angemeldet.

Erneute Implementation von glo::BasePersistent.

◆ getTypeAsString()

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

Liefert die Klassenbezeichnung, wenn mit der Datenbank verbunden.

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

Erneute Implementation von glo::BasePersistent.

◆ insertInObjectSpy()

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

Fügt das Objekt in seinen ObjectSpy ein.

Implementiert glo::BasePersistent.

◆ operator!=()

bool glo::GenericPersistent::operator!= ( const GenericPersistent & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ operator=()

GenericPersistent & glo::GenericPersistent::operator= ( const GenericPersistent & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ operator==()

bool glo::GenericPersistent::operator== ( const GenericPersistent & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ remember()

virtual unsigned int glo::GenericPersistent::remember ( )
overridevirtual

Inkrementiert den Referenz-Zähler. Sollte immer bei 'Auslieferung' eines Objektes dieser Klasse aufgerufen werden. Die belieferte Instanz muss dann das Objekt mit BasePersistent::forget() 'vergessen'.

Rückgabe
Der Rückgabewert ist die Anzahl der Referenzen auf das Objekt dieser Klasse.
Zu beachten
Es wird empfohlen, wenn möglich, die Verwendung von std::shared_ptr in Verbindung mit Forgetter in Betracht zu ziehen.

Erneute Implementation von glo::BasePersistent.

◆ removeBase()

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

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

Erneute Implementation von glo::BasePersistent.

◆ removeInObjectSpy()

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

Entfernt das Objekt aus seinem ObjectSpy.

Implementiert glo::BasePersistent.

◆ setCreateDate()

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

Setzt das Erstellungsdatum auf 'jetzt'.

Implementiert glo::BasePersistent.

◆ takeOverRecord()

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

Übernimmt die Attributdaten aus dem übergebenen Datensatz wenn ungleich nullptr.

Parameter
[in]pRecordDer Datensatz mit den zu übernehmenden Attributen.

Erneute Implementation von glo::BasePersistent.

Dokumentation der Datenelemente

◆ m_ulClassID

unsigned long glo::GenericPersistent::m_ulClassID
private

Die Klassen-ID des Objekts aus der Datenbank.


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