GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::TOndemand< T > Template-Klassenreferenz

Referenz (als Attribut) eines persistenten Objekte auf ein anderes persistentes Objekt in der Datenbank. Mehr ...

#include <GloTOndemand.h>

Klassendiagramm für glo::TOndemand< T >:

Öffentliche Methoden

 TOndemand ()
 
 TOndemand (Base &rBase)
 
 TOndemand (const ObjID &rObjID)
 
 TOndemand (const ObjID &rObjID, Base &rBase)
 
 TOndemand (const TOndemand &rT)
 
virtual ~TOndemand ()
 
int get (std::shared_ptr< T > &rRetVal) const
 
int get (T *&prObj) const
 
int set (const std::shared_ptr< T > &spObj)
 
int set (const T &rObj)
 
int set (const T *pObj)
 
virtual void setReference (const ObjID &rObjID)
 
TOndemand< T > & operator= (const TOndemand &rT)
 Zuweisungsoperator.
 
TOndemand< T > & operator= (const Reference &rT)
 Zuweisungsoperator.
 
bool operator== (const TOndemand &rT) const
 Vergleichsoperator.
 
bool operator!= (const TOndemand &rT) const
 Vergleichsoperator.
 
- Öffentliche Methoden geerbt von glo::Reference
 Reference ()
 
 Reference (Base &rBase)
 
 Reference (const ObjID &rObjID)
 
 Reference (const ObjID &rObjID, Base &rBase)
 
 Reference (const Reference &rT)
 
virtual ~Reference ()
 
virtual int deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW)
 
ObjID getObjID () const
 
const ObjIDgetObjIDAsPointer () const
 
int getReference (BasePersistent *&prRetVal) const
 
int getReference (std::shared_ptr< BasePersistent > &sprRetVal) const
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
virtual int isLocked (const LockSpecification &rLockSpecification) const
 
virtual int isLocked (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
bool isNULL () 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 lock (const LockSpecification &rLockSpecification) const
 
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
Referenceoperator= (const Reference &rT)
 
void setNULL ()
 
int setReference (const BasePersistent &rObj)
 
int setReference (const BasePersistent *pObj)
 
virtual int setWatch (const WatchSpecification &rWatchSpec) const
 
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) const
 
virtual int unlock (const LockSpecification &rLockSpecification) const
 
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const
 
virtual int unsetWatch (const WatchSpecification &rWatchSpec) const
 
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const
 
bool operator== (const Reference &rT) const
 Vergleichsoperator.
 
bool operator!= (const Reference &rT) const
 Vergleichsoperator.
 
- Ö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.
 

Weitere Geerbte Elemente

- Öffentliche Attribute geerbt von glo::CallBack
std::string m_strDebugInfo
 
- Geschützte Methoden geerbt von glo::CallBack
 CallBack (const CallBack &rT)
 

Ausführliche Beschreibung

template<class T>
class glo::TOndemand< T >

Referenz (als Attribut) eines persistenten Objekte auf ein anderes persistentes Objekt in der Datenbank.

Im Gegensatz zu einem Zeiger auf ein persistentes Objekt (bei dem das referenzierte Objekt 'mitgeladen' wird), ist TOndemand eine Referenz über die Objekt-ID auf ein persistentes Objekt; es wird also nicht mit dem referenzierenden Objekt aus der Datenbank geladen, sondern kann bei Bedarf 'nachgeladen' werden.

Sinnvoller Einsatz ist immer dann gegeben, wenn ein Objekt ein nicht im jeden Fall notwendig im Speicher verfügbares 'großes' Objekt referenziert.

Z.B. bei einer Bilderverwaltung könnte ein Bildobjekt textuelle Informationen, ein Thumpnail und ein 'große' Bild enthalten. Für einige Ansichten ist es evtl. aus Geschwindigkeitsgründen gar nicht sinnvoll bei jeder Anzeige das 'große' Bild mit aus der Datenbank zu holen. Da wäre dann eine Referenz über ein TOndemand sinnvoll. sinnvoll.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ TOndemand() [1/5]

template<class T >
glo::TOndemand< T >::TOndemand ( )

Standard-Konstruktor.

◆ TOndemand() [2/5]

template<class T >
glo::TOndemand< T >::TOndemand ( const ObjID & rObjID)

Konstruktor mit Parameterübergabe.

Parameter
[in]rObjIDEs kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts mitgegeben werden.

◆ TOndemand() [3/5]

template<class T >
glo::TOndemand< T >::TOndemand ( Base & rBase)

Konstruktor mit Parameterübergabe.

Parameter
[in]rBaseEs kann schon bei der Erstellung die maßgebliche Datenbank mitgegeben werden.

◆ TOndemand() [4/5]

template<class T >
glo::TOndemand< T >::TOndemand ( const ObjID & rObjID,
Base & rBase )

Konstruktor mit Parameterübergabe.

Parameter
[in]rObjIDEs kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts und...
[in]rBase...die maßgebliche Datenbank mitgegeben werden.

◆ TOndemand() [5/5]

template<class T >
glo::TOndemand< T >::TOndemand ( const TOndemand< T > & rT)

Copy-Konstruktor.

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

◆ ~TOndemand()

template<class T >
glo::TOndemand< T >::~TOndemand ( )
virtual

Destruktor.

Dokumentation der Elementfunktionen

◆ get() [1/2]

template<class T >
int glo::TOndemand< T >::get ( std::shared_ptr< T > & rRetVal) const

Liefert das referenzierte Objekt aus der Datenbank (bzw. aus dem Speicher wenn schon geladen) in einem std::shared_ptr.

Parameter
[in,out]rRetValDas referenzierte Objekt in einem std::shared_ptr.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ get() [2/2]

template<class T >
int glo::TOndemand< T >::get ( T *& prObj) const

Liefert das referenzierte Objekt aus der Datenbank (bzw. aus dem Speicher wenn schon geladen).

Parameter
[in,out]prObjDie Zeigerreferenz auf das referenzierte Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Das gelieferte Objekt muss von der aufrufenden Instanz mittels BasePersistent::forget() aus dem Speicher entfernt werden.

◆ operator!=()

template<class T >
bool glo::TOndemand< T >::operator!= ( const TOndemand< T > & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ operator=() [1/2]

template<class T >
TOndemand< T > & glo::TOndemand< T >::operator= ( const Reference & rT)

Zuweisungsoperator.

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

◆ operator=() [2/2]

template<class T >
TOndemand< T > & glo::TOndemand< T >::operator= ( const TOndemand< T > & rT)

Zuweisungsoperator.

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

◆ operator==()

template<class T >
bool glo::TOndemand< T >::operator== ( const TOndemand< T > & rT) const

Vergleichsoperator.

Parameter
[in]rTDas mit diesem zu vergleichende Objekt.

◆ set() [1/3]

template<class T >
int glo::TOndemand< T >::set ( const std::shared_ptr< T > & spObj)

Übernimmt die Objekt-ID des übergeben Objekt als Referenz.

Parameter
[in]spObjDas zu referenzierende Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Beide Objekte, dieses und das zu referenzierende müssen an der gleichen Datenbank angemeldet sein.

◆ set() [2/3]

template<class T >
int glo::TOndemand< T >::set ( const T & rObj)

Übernimmt die Objekt-ID des übergeben Objekt als Referenz.

Parameter
[in]rObjDas zu referenzierende Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Beide Objekte, dieses und das zu referenzierende müssen an der gleichen Datenbank angemeldet sein.

◆ set() [3/3]

template<class T >
int glo::TOndemand< T >::set ( const T * pObj)

Übernimmt die Objekt-ID des übergeben Objekt als Referenz.

Parameter
[in]pObjDer Zeiger auf das zu referenzierende Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Zu beachten
Beide Objekte, dieses und das zu referenzierende müssen an der gleichen Datenbank angemeldet sein.

◆ setReference()

template<class T >
void glo::TOndemand< T >::setReference ( const ObjID & rObjID)
virtual

Übernimmt die Objekt-ID als Referenz.

Parameter
[in]rObjIDDie zu referenzierende Objekt-ID.
Zu beachten
Beide Objekte, dieses und das zu referenzierende müssen an der gleichen Datenbank angemeldet sein.

Erneute Implementation von glo::Reference.


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