Referenz (als Attribut) eines persistenten Objekte auf ein anderes persistentes Objekt in der Datenbank.
Mehr ...
|
| TOndemand () |
|
| TOndemand (const ObjID &rObjID) |
|
| TOndemand (Base &rBase) |
|
| TOndemand (const ObjID &rObjID, Base &rBase) |
|
| TOndemand (const TOndemand &rT) |
|
virtual | ~TOndemand () |
|
int | set (const T *pObj) |
|
int | set (const T &rObj) |
|
int | set (const std::shared_ptr< T > &spObj) |
|
int | get (T *&prObj) const |
|
int | get (std::shared_ptr< T > &rRetVal) const |
|
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 (const ObjID &rObjID) |
|
| Reference (Base &rBase) |
|
| Reference (const ObjID &rObjID, Base &rBase) |
|
| Reference (const Reference &rT) |
|
virtual | ~Reference () |
|
virtual int | getTypeAsString (std::string &rsTypeName) override |
|
bool | isNULL () const |
|
void | setNULL () |
|
ObjID | getObjID () const |
|
const ObjID * | getObjIDAsPointer () const |
|
int | setReference (const BasePersistent *pObj) |
|
int | setReference (const BasePersistent &rObj) |
|
int | getReference (BasePersistent *&prRetVal) const |
|
int | getReference (std::shared_ptr< BasePersistent > &sprRetVal) const |
|
virtual int | deleteInBase (EnDeepMode eDeepMode=DM_SHALLOW) |
|
virtual int | lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const |
|
virtual int | lock (const LockSpecification &rLockSpecification) const |
|
virtual int | unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const |
|
virtual int | unlock (const LockSpecification &rLockSpecification) const |
|
virtual int | isLocked (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW) const |
|
virtual int | isLocked (const LockSpecification &rLockSpecification) 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 | setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0) const |
|
virtual int | setWatch (const WatchSpecification &rWatchSpec) const |
|
virtual int | unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack) const |
|
virtual int | unsetWatch (const WatchSpecification &rWatchSpec) const |
|
Reference & | operator= (const Reference &rT) |
|
bool | operator== (const Reference &rT) const |
| Vergleichsoperator.
|
|
bool | operator!= (const Reference &rT) const |
| Vergleichsoperator.
|
|
| CallBack () |
|
| CallBack (Base &rBase) |
|
virtual | ~CallBack () |
|
virtual void | notify (NotifyNote &rNote) |
|
virtual void | setBase (Base *pBase) |
|
Base * | getBase () const |
|
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.
|
|
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.
- Copyright
- © 2010 Helmut Jakoby
- Autor
- Helmut Jakoby