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 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) |
|
int | set (const std::shared_ptr< T > &spObj) |
|
int | set (const T &rObj) |
|
int | set (const T *pObj) |
|
virtual int | setReference (const ObjID &rObjID) override |
|
|
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 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 > &sprRetVal) |
|
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.
|
|
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.
Wenn Objekte einer Objektdatenbank Objekte in einer anderen Objektdatenbank referenzieren sollen, ist dieses nur mit glo::TOndemand möglich.
- Copyright
- © 2010 Helmut Jakoby
- Autor
- Helmut Jakoby