Referenz (als Attribut) eines persistenten Objekte auf ein anderes persistentes Objekt in der Datenbank.
Mehr ...
|
| 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.
|
|
| 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 ObjID * | getObjIDAsPointer () 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 |
|
Reference & | operator= (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.
|
|
| CallBack () |
|
| CallBack (Base &rBase) |
|
virtual | ~CallBack () |
|
Base * | getBase () const |
|
virtual void | notify (NotifyNote &rNote) |
|
CallBack & | operator= (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.
|
|
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.
- Copyright
- © 2010 Helmut Jakoby
- Autor
- Helmut Jakoby