GlobalObjects
GloTOndemand< T > Template-Klassenreferenz

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

#include <GloTOndemand.h>

Klassendiagramm für GloTOndemand< T >:

Öffentliche Methoden

 GloTOndemand ()
 
 GloTOndemand (const GloObjID &rObjID)
 
 GloTOndemand (const GloObjID &rObjID, GloBase &rBase)
 
 GloTOndemand (const GloTOndemand &rT)
 
 GloTOndemand (GloBase &rBase)
 
virtual ~GloTOndemand ()
 
int get (std::shared_ptr< T > &rRetVal) const
 
int get (T *&prObj) const
 
bool operator!= (const GloTOndemand &rT) const
 
GloTOndemand< T > & operator= (const GloReference &rT)
 
GloTOndemand< T > & operator= (const GloTOndemand &rT)
 
bool operator== (const GloTOndemand &rT) const
 
int set (const T &rObj)
 
int set (const T *pObj)
 
virtual void setReference (const GloObjID &rObjID)
 
- Öffentliche Methoden geerbt von GloReference
virtual int deleteInBase (GloEnDeepMode eDeepMode=GloSHALLOW)
 
GloObjID getReference () const
 
const GloObjIDgetReferenceAsPointer () const
 
virtual int getTypeAsString (std::string &rsTypeName)
 
virtual int isLocked (const GloLockSpecification &rLockSpecification) const
 
virtual int isLocked (GloEnLockMode eLockMode=GloLK_DELETEvWRITE, GloEnDeepMode eDeepMode=GloSHALLOW) const
 
bool isNULL () const
 
virtual int isPossible (bool bRead, bool bWrite, bool bDelete, GloEnDeepMode eDeepMode=GloSHALLOW) const
 
virtual int isPossible (const GloLockPossibleSpecification &rLockPossibleSpec, GloEnDeepMode eDeepMode=GloSHALLOW) const
 
virtual int lock (const GloLockSpecification &rLockSpecification) const
 
virtual int lock (GloEnLockMode eLockMode=GloLK_DELETEvWRITE, GloEnDeepMode eDeepMode=GloSHALLOW) const
 
bool operator!= (const GloReference &rT) const
 
GloReferenceoperator= (const GloReference &rT)
 
bool operator== (const GloReference &rT) const
 
virtual int setWatch (const GloWatchSpecification &rWatchSpec) const
 
virtual int setWatch (GloTdWatchNotifyMode ulWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack=0) const
 
virtual int unlock (const GloLockSpecification &rLockSpecification) const
 
virtual int unlock (GloEnLockMode eLockMode=GloLK_DELETEvWRITE, GloEnDeepMode eDeepMode=GloSHALLOW) const
 
virtual int unsetWatch (const GloWatchSpecification &rWatchSpec) const
 
virtual int unsetWatch (GloTdWatchNotifyMode ulWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack) const
 
- Öffentliche Methoden geerbt von GloCallBack
 GloCallBack ()
 
 GloCallBack (GloBase &rBase)
 
virtual ~GloCallBack ()
 
GloBasegetBase () const
 
virtual void notify (GloNotifyNote &rNote)
 

Weitere Geerbte Elemente

- Geschützte Methoden geerbt von GloReference
 GloReference ()
 Nur für Unter-Template-Klasse verfügbar. Mehr ...
 
 GloReference (const GloObjID &rObjID)
 
 GloReference (const GloObjID &rObjID, GloBase &rBase)
 
 GloReference (const GloReference &rT)
 
 GloReference (GloBase &rBase)
 
virtual ~GloReference ()
 
int _Get (GloBasePersistent *&prObject) const
 
int _Set (const GloBasePersistent &rObj)
 
int _Set (const GloBasePersistent *pObj)
 
- Geschützte Methoden geerbt von GloCallBack
 GloCallBack (const GloCallBack &rT)
 
bool operator!= (const GloCallBack &rT) const
 
GloCallBackoperator= (const GloCallBack &rT)
 
bool operator== (const GloCallBack &rT) const
 
void setBase (GloBase *pBase)
 

Ausführliche Beschreibung

template<class T>
class GloTOndemand< 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 GloTOndemand 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 eine Referenz über ein GloTOndemand sinnvoll.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ GloTOndemand() [1/5]

template<class T >
GloTOndemand< T >::GloTOndemand

Standard-Konstruktor.

◆ GloTOndemand() [2/5]

template<class T >
GloTOndemand< T >::GloTOndemand ( const GloObjID rObjID)

Konstruktor mit Parameterübergabe.

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

◆ GloTOndemand() [3/5]

template<class T >
GloTOndemand< T >::GloTOndemand ( GloBase rBase)

Konstruktor mit Parameterübergabe.

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

◆ GloTOndemand() [4/5]

template<class T >
GloTOndemand< T >::GloTOndemand ( const GloObjID rObjID,
GloBase rBase 
)

Konstruktor mit Parameterübergabe.

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

◆ GloTOndemand() [5/5]

template<class T >
GloTOndemand< T >::GloTOndemand ( const GloTOndemand< T > &  rT)

Copy-Konstruktor.

◆ ~GloTOndemand()

template<class T >
GloTOndemand< T >::~GloTOndemand
virtual

Destruktor.

Dokumentation der Elementfunktionen

◆ get() [1/2]

template<class T >
int GloTOndemand< 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 GloTOndemand< T >::get ( T *&  prObj) const

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

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

◆ operator!=()

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

◆ operator=() [1/2]

template<class T >
GloTOndemand< T > & GloTOndemand< T >::operator= ( const GloReference rT)

Zuweisungsoperator.

Parameter
[in]rTEs wird eine GloReference erwartet.

◆ operator=() [2/2]

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

Zuweisungsoperator.

Parameter
[in]rTEs wird eine GloTOndemand erwartet.

◆ operator==()

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

◆ set() [1/2]

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

Übernimmt die Objekt-ID des übergeben Objekt als Referenz. Beide Objekte, dieses und das zu referenzierende müsen an die gleiche Datenbank angemeldet sein.

Parameter
[in]rObjDas zu referenzierende Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ set() [2/2]

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

Übernimmt die Objekt-ID des übergeben Objekt als Referenz. Beide Objekte, dieses und das zu referenzierende müsen an die gleiche Datenbank angemeldet sein.

Parameter
[in]pObjDas zu referenzierende Objekt.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ setReference()

template<class T >
void GloTOndemand< T >::setReference ( const GloObjID rObjID)
virtual

Übernimmt die Objekt-ID.

Parameter
[in]rObjIDDie zu referenzierende Objekt-ID.

Erneute Implementation von GloReference.


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