Referenz (als Attribut) eines persistenten Objekte auf ein anderes persistentes Objekt in der Datenbank. Mehr ...
#include <GloTOndemand.h>
Öffentliche Methoden | |
TOndemand () | |
TOndemand (Base &rBase) | |
TOndemand (const ObjID &rObjID) | |
TOndemand (const ObjID &rObjID, Base &rBase) | |
TOndemand (const ObjID &rObjID, unsigned long ulDatabaseID) | |
TOndemand (const TOndemand &rT) | |
TOndemand (unsigned long ulDatabaseID) | |
virtual | ~TOndemand () |
int | get (std::shared_ptr< T > &rRetVal) |
int | get (T *&prObj) |
virtual int | setReference (const ObjID &rObjID) override |
int | set (const T *rObj) |
Übernimmt die Objekt-ID des übergeben Objekt als Referenz. | |
int | set (const T &rObj) |
Übernimmt die Objekt-ID des übergeben Objekt als Referenz. | |
int | set (const std::shared_ptr< T > &rObj) |
Übernimmt die Objekt-ID des übergeben Objekt als Referenz. | |
TOndemand< T > & | operator= (const TOndemand &rT) |
Zuweisungsoperator. | |
bool | operator== (const TOndemand &rT) const |
Vergleichsoperator. | |
bool | operator!= (const TOndemand &rT) const |
Vergleichsoperator. | |
![]() | |
Reference () | |
Reference (Base &rBase) | |
Reference (const ObjID &rObjID) | |
Reference (const ObjID &rObjID, Base &rBase) | |
Reference (const ObjID &rObjID, unsigned long ulDatabaseID) | |
Reference (const Reference &rT) | |
Reference (unsigned long ulDatabaseID) | |
virtual | ~Reference () |
virtual int | deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW) |
virtual Base * | getBase () const override |
ObjID | getObjID () const |
const ObjID * | getObjIDAsPointer () const |
int | getReference (BasePersistent *&prRetVal) |
int | getReference (std::shared_ptr< BasePersistent > &rspRetVal) |
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 |
Reference & | operator= (const Reference &rT) |
virtual int | setBase (Base *pBase) override |
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. | |
![]() | |
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. | |
Öffentliche, statische Methoden | |
static unsigned long | getStaticGloClassID () |
Weitere Geerbte Elemente | |
![]() | |
std::string | m_strDebugInfo |
![]() | |
CallBack (const CallBack &rT) | |
void | deinit () |
void | init () |
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.
Wenn Objekte einer Objektdatenbank Objekte in einer anderen Objektdatenbank referenzieren sollen, ist dieses nur mit glo::TOndemand möglich.
glo::TOndemand< T >::TOndemand | ( | ) |
Standard-Konstruktor.
Benutzt glo::CallBack::m_strDebugInfo und SUPER.
Wird benutzt von TOndemand(), operator!=(), operator=() und operator==().
glo::TOndemand< T >::TOndemand | ( | const ObjID & | rObjID | ) |
Konstruktor mit Parameterübergabe.
[in] | rObjID | Es kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts mitgegeben werden. |
Benutzt glo::CallBack::m_strDebugInfo und SUPER.
glo::TOndemand< T >::TOndemand | ( | Base & | rBase | ) |
Konstruktor mit Parameterübergabe.
[in] | rBase | Es kann schon bei der Erstellung die maßgebliche Datenbank mitgegeben werden. |
Benutzt glo::Reference::Base, glo::CallBack::m_strDebugInfo und SUPER.
glo::TOndemand< T >::TOndemand | ( | unsigned long | ulDatabaseID | ) |
Konstruktor mit Parameterübergabe.
[in] | ulDatabaseID | Es kann schon bei der Erstellung die maßgebliche Datenbank ID mitgegeben werden. |
Benutzt glo::CallBack::m_strDebugInfo und SUPER.
glo::TOndemand< T >::TOndemand | ( | const ObjID & | rObjID, |
Base & | rBase ) |
Konstruktor mit Parameterübergabe.
[in] | rObjID | Es kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts und... |
[in] | rBase | ...die maßgebliche Datenbank mitgegeben werden. |
Benutzt glo::Reference::Base, glo::CallBack::m_strDebugInfo und SUPER.
glo::TOndemand< T >::TOndemand | ( | const ObjID & | rObjID, |
unsigned long | ulDatabaseID ) |
Konstruktor mit Parameterübergabe.
[in] | rObjID | Es kann schon bei der Erstellung die Objekt-ID des zu referenzierenden Objekts und... |
[in] | ulDatabaseID | ...die maßgebliche Datenbank ID mitgegeben werden. |
Benutzt glo::CallBack::m_strDebugInfo und SUPER.
glo::TOndemand< T >::TOndemand | ( | const TOndemand< T > & | rT | ) |
Copy-Konstruktor.
[in] | rT | Von diesem Objekt werden die Daten übernommen. |
Benutzt TOndemand(), glo::CallBack::m_strDebugInfo und SUPER.
|
virtual |
Destruktor.
int glo::TOndemand< T >::get | ( | std::shared_ptr< T > & | rRetVal | ) |
Liefert das referenzierte Objekt aus der Datenbank (bzw. aus dem Speicher wenn schon geladen) in einem std::shared_ptr.
[in,out] | rRetVal | Das referenzierte Objekt in einem std::shared_ptr. |
Benutzt get().
int glo::TOndemand< T >::get | ( | T *& | prObj | ) |
Liefert das referenzierte Objekt aus der Datenbank (bzw. aus dem Speicher wenn schon geladen).
[in,out] | prObj | Die Zeigerreferenz auf das referenzierte Objekt. |
Benutzt glo::ERR_WRONG_TYPE und glo::BasePersistent::forget().
Wird benutzt von get().
|
inlinestatic |
Gibt die Klassen-ID des Templates zurück.
bool glo::TOndemand< T >::operator!= | ( | const TOndemand< T > & | rT | ) | const |
TOndemand< T > & glo::TOndemand< T >::operator= | ( | const TOndemand< T > & | rT | ) |
Zuweisungsoperator.
[in] | rT | Von diesem Objekt werden die Daten übernommen. |
Benutzt TOndemand().
bool glo::TOndemand< T >::operator== | ( | const TOndemand< T > & | rT | ) | const |
int glo::TOndemand< T >::set | ( | const std::shared_ptr< T > & | rObj | ) |
Übernimmt die Objekt-ID des übergeben Objekt als Referenz.
[in] | pObj | Der Zeiger auf das zu referenzierende Objekt. |
Benutzt set().
int glo::TOndemand< T >::set | ( | const T & | rObj | ) |
Übernimmt die Objekt-ID des übergeben Objekt als Referenz.
[in] | pObj | Der Zeiger auf das zu referenzierende Objekt. |
Benutzt glo::ERR_WRONG_TYPE.
int glo::TOndemand< T >::set | ( | const T * | rObj | ) |
Übernimmt die Objekt-ID des übergeben Objekt als Referenz.
[in] | pObj | Der Zeiger auf das zu referenzierende Objekt. |
Benutzt glo::ERR_WRONG_TYPE.
Wird benutzt von glo::TOndemandList< T >::get(), glo::TOndemandList< T >::get(), glo::TOndemandSet< T >::get(), glo::TOndemandSet< T >::get() und set().
|
overridevirtual |
Übernimmt die Objekt-ID als Referenz.
[in] | rObjID | Die zu referenzierende Objekt-ID. |
Erneute Implementation von glo::Reference.
Benutzt glo::ERR_WRONG_TYPE, glo::ObjID::getClassID() und glo::ObjID::isNULL().