GlobalObjects
GloTOndemandSet< T > Template-Klassenreferenz

Ein typsicherer Set von Referenzen auf persistente Objekte in der Datenbank (gedacht als Attribut für persistente Objekte). Mehr ...

#include <GloTOndemandSet.h>

Klassendiagramm für GloTOndemandSet< T >:

Öffentliche Methoden

 GloTOndemandSet ()
 
 GloTOndemandSet (GloBase &rBase)
 
virtual ~GloTOndemandSet ()
 
virtual int append (std::shared_ptr< T > spNewObj)
 
virtual int append (T *pNewObj)
 
virtual int get (std::shared_ptr< T > &rRetVal, GloEnSeekMode eMode)
 
virtual int get (T *&prRetVal, GloEnSeekMode eMode)
 
virtual int getTypeAsString (std::string &rsTypeName)
 
virtual int insert (std::shared_ptr< T > spNewObj)
 
virtual int insert (T *pNewObj)
 
virtual int insertBefore (std::shared_ptr< T > spNewObj, const std::shared_ptr< T > spObject)
 
virtual int insertBefore (T *pNewObj, const T *pObject)
 
virtual int remove (std::shared_ptr< T > spObject)
 
virtual int remove (T *pObject)
 
- Öffentliche Methoden geerbt von GloOndemandSet
 GloOndemandSet ()
 
 GloOndemandSet (GloBase &rBase)
 
virtual ~GloOndemandSet ()
 
virtual int appendOndemand (const GloReference &rNewOndemand)
 
virtual void clear ()
 
virtual bool inLot (const GloObjID &rObjID)
 
virtual bool inLot (const GloReference &rOndemand)
 
virtual int insertOndemand (const GloReference &rNewOndemand)
 
virtual int removeOndemand (const GloReference &rOndemand)
 
std::set< GloReference * > & Set ()
 
virtual int setCurrentObject (const GloObjID &rObjID)
 
virtual int setPosition (std::size_t nPosition)
 
virtual std::size_t size ()
 
- Öffentliche Methoden geerbt von GloOndemandLot
 GloOndemandLot ()
 
 GloOndemandLot (GloBase &rBase)
 
virtual ~GloOndemandLot ()
 
virtual int appendPers (GloBasePersistent *pNewObj)
 
virtual int getObjID (GloObjID &rObjID, GloEnSeekMode eMode)
 
virtual int getPers (GloBasePersistent *&prRetVal, GloEnSeekMode eMode)
 
virtual bool inLot (const GloBasePersistent *pObject)
 
virtual int insertOndemandBefore (const GloReference &rNewOndemand, const GloReference &rOndemand)
 
virtual int insertPers (GloBasePersistent *pNewObj)
 
virtual int insertPersBefore (GloBasePersistent *pNewObj, const GloBasePersistent *pObject)
 
virtual int removePers (GloBasePersistent *pObject)
 
- Öffentliche Methoden geerbt von GloBaseLot
 GloBaseLot ()
 
 GloBaseLot (GloBase &rBase)
 
virtual ~GloBaseLot ()
 
virtual int appendPers (std::shared_ptr< GloBasePersistent > spNewObj)
 
virtual int getPers (std::shared_ptr< GloBasePersistent > &rRetVal, GloEnSeekMode eMode)
 
virtual bool inLot (const std::shared_ptr< GloBasePersistent > spObject)
 
virtual int insertPers (std::shared_ptr< GloBasePersistent > spNewObj)
 
virtual int insertPersBefore (std::shared_ptr< GloBasePersistent > spNewObj, const std::shared_ptr< GloBasePersistent > spObject)
 
virtual int lock (const GloLockSpecification &rLockSpecification)
 
virtual int lock (GloEnLockMode eLockMode=GloLK_DELETEvWRITE, GloEnDeepMode eDeepMode=GloSHALLOW)
 
virtual int removePers (std::shared_ptr< GloBasePersistent > spObject)
 
void setBase (GloBase &rBase)
 
virtual int setWatch (const GloWatchSpecification &rWatchSpec)
 
virtual int setWatch (GloTdWatchNotifyMode ulWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack=0)
 
virtual int unlock (const GloLockSpecification &rLockSpecification)
 
virtual int unlock (GloEnLockMode eLockMode=GloLK_DELETEvWRITE, GloEnDeepMode eDeepMode=GloSHALLOW)
 
virtual int unsetWatch (const GloWatchSpecification &rWatchSpec)
 
virtual int unsetWatch (GloTdWatchNotifyMode ulWatchMode, GloEnDeepMode eDeepMode, GloCallBack *pCallBack=0)
 
- Öffentliche Methoden geerbt von GloAbstractBaseLot
 GloAbstractBaseLot ()
 
virtual ~GloAbstractBaseLot ()
 
virtual int setCurrentObject (const GloBasePersistent &rObject)
 
- Öffentliche Methoden geerbt von GloCallBack
 GloCallBack ()
 
 GloCallBack (GloBase &rBase)
 
virtual ~GloCallBack ()
 
GloBasegetBase () const
 
virtual void notify (GloNotifyNote &rNote)
 

Private Methoden

 GloTOndemandSet (const GloTOndemandSet &)
 
GloTOndemandSet< T > & operator= (const GloTOndemandSet &)
 

Weitere Geerbte Elemente

- Geschützte Methoden geerbt von GloBaseLot
int lockObjID (const GloObjID &rObjID)
 
int setWatchObjID (const GloObjID &rObjID)
 
int takeOverBase (const GloBasePersistent *pObj)
 
int takeOverBase (const GloReference *pRef)
 
int unlockObjID (const GloObjID &rObjID)
 
int unsetWatchObjID (const GloObjID &rObjID)
 
- 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)
 
- Geschützte Attribute geerbt von GloBaseLot
unsigned long m_ulClassID
 

Ausführliche Beschreibung

template<class T>
class GloTOndemandSet< T >

Ein typsicherer Set von Referenzen auf persistente Objekte in der Datenbank (gedacht als Attribut für persistente Objekte).

Im Gegensatz zu einem GloTPointerSet (bei dem die referenzierten Objekte 'mitgeladen' werden), ist der GloTOndemandSet ein Set von Referenzen über die Objekt-ID auf persistente Objekt; es werden diese also nicht mit dem referenzierenden Objekt aus der Datenbank geladen, sondern können bei Bedarf 'nachgeladen' werden

Sinnvoller Einsatz ist immer dann gegeben, wenn ein Objekt mehrere, nicht im jeden Fall notwendig im Speicher verfügbare, 'große' Objekte referenzieren soll.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ GloTOndemandSet() [1/3]

template<class T >
GloTOndemandSet< T >::GloTOndemandSet

Standard-Konstruktor.

◆ GloTOndemandSet() [2/3]

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

Konstruktor mit Parameterübergabe.

Parameter
[in]rBaseEs wird die maßgebliche Datenbank mitgegeben.
Ausnahmebehandlung
EuErrorBei einem Fehler wird eine Exception geworfen.

◆ ~GloTOndemandSet()

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

Destruktor, es wird für alle Objekte im Objekt-Set der eigene Sperr- und Beobachtungsmodus aufgehoben und dann der Objekt-Set geleert.

◆ GloTOndemandSet() [3/3]

template<class T >
GloTOndemandSet< T >::GloTOndemandSet ( const GloTOndemandSet< T > &  )
private

Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ append() [1/2]

template<class T >
int GloTOndemandSet< T >::append ( std::shared_ptr< T >  spNewObj)
virtual

Fügt ein persistentes Objekt an das Ende des Set ein. Wenn Set gesperrt, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt. Wenn Set beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus des Sets mitbeobachtet.

Parameter
[in]spNewObjDas einzufügende persistente Objekt in einem std::shared_ptr.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ append() [2/2]

template<class T >
int GloTOndemandSet< T >::append ( T *  pNewObj)
virtual

Fügt ein persistentes Objekt an das Ende des Set ein. Wenn Set gesperrt, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt. Wenn Set beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus des Sets mitbeobachtet.

Parameter
[in]pNewObjDas einzufügende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ get() [1/2]

template<class T >
int GloTOndemandSet< T >::get ( std::shared_ptr< T > &  rRetVal,
GloEnSeekMode  eMode 
)
virtual

Liefert ein Objekt aus dem Set in Bezug auf eMode.

Parameter
[in,out]rRetValBei keinem Fehler das geholte Objekt in einem std::shared_ptr.
[in]eModeDer Seekmode.

Parameterbeispiele:

  • GloSTART = liefert erstes Element
  • GloEND = liefert letztes Element
  • GloCURRENT = liefert aktuelles Element
  • GloNEXT = liefert nächstes Element
  • GloPREVIOUS = liefert vorheriges Element
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == GloERR_RANGE zeigt das Ende des Sets an.

◆ get() [2/2]

template<class T >
int GloTOndemandSet< T >::get ( T *&  prRetVal,
GloEnSeekMode  eMode 
)
virtual

Liefert ein Objekt aus dem Set in Bezug auf eMode.

Parameter
[in,out]prRetValBei keinem Fehler das geholte Objekt.
[in]eModeDer Seekmode.

Parameterbeispiele:

  • GloSTART = liefert erstes Element
  • GloEND = liefert letztes Element
  • GloCURRENT = liefert aktuelles Element
  • GloNEXT = liefert nächstes Element
  • GloPREVIOUS = liefert vorheriges Element
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == GloERR_RANGE zeigt das Ende des Sets an.
Achtung
Wenn prRetVal gültig, muss dieses Objekt von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getTypeAsString()

template<class T >
int GloTOndemandSet< T >::getTypeAsString ( std::string &  rsTypeName)
virtual

Liefert den Typ als String, wenn mit Datenbank verbunden.

Parameter
[in,out]rsTypeNameDie Typbezeichnung.
Rückgabe
Wenn Rückgabewert < 0, ist ein Fehler aufgetreten.

Erneute Implementation von GloBaseLot.

◆ insert() [1/2]

template<class T >
int GloTOndemandSet< T >::insert ( std::shared_ptr< T >  spNewObj)
virtual

Fügt ein persistentes Objekt in den Set hinter der aktuellen Position ein. Wenn Set gesperrt, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt. Wenn Set beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus des Sets mitüberwacht.

Parameter
[in]spNewObjDas einzufügende persistente Objekt in einem std::shared_ptr.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ insert() [2/2]

template<class T >
int GloTOndemandSet< T >::insert ( T *  pNewObj)
virtual

Fügt ein persistentes Objekt in den Set hinter der aktuellen Position ein. Wenn Set gesperrt, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt. Wenn Set beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus des Sets mitüberwacht.

Parameter
[in]pNewObjDas einzufügende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ insertBefore() [1/2]

template<class T >
int GloTOndemandSet< T >::insertBefore ( std::shared_ptr< T >  spNewObj,
const std::shared_ptr< T >  spObject 
)
virtual

Fügt ein persistentes Objekt vor einem anderen Objekt in den Set ein. Wenn Set gesperrt, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt. Wenn Set beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus des Sets mitüberwacht.

Parameter
[in]spNewObjDas einzufügende persistente Objekt in einem std::shared_ptr.
[in]spObjectDas nachfolgende persistente Objekt in einem std::shared_ptr.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ insertBefore() [2/2]

template<class T >
int GloTOndemandSet< T >::insertBefore ( T *  pNewObj,
const T *  pObject 
)
virtual

Fügt ein persistentes Objekt vor einem anderen Objekt in den Set ein. Wenn Set gesperrt, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt. Wenn Set beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus des Sets mitüberwacht.

Parameter
[in]pNewObjDas einzufügende persistente Objekt.
[in]pObjectDas nachfolgende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ operator=()

template<class T >
GloTOndemandSet< T >& GloTOndemandSet< T >::operator= ( const GloTOndemandSet< T > &  )
private

Zuweisungsoperator ist nicht verfügbar.

◆ remove() [1/2]

template<class T >
int GloTOndemandSet< T >::remove ( std::shared_ptr< T >  spObject)
virtual

Entfernt persistentes Objekt aus dem Set. Wenn Set gesperrt, wird das zu entfernende Objekt mit den Sperrmodus des Sets freigegeben. Wenn Set beobachtet wird, wird die Beobachtung des zu entfernende Objekt mit dem Beobachtungsmodus des Sets beendet.

Parameter
[in]spObjectDas zu entfernende persistente Objekt in einem std::shared_ptr.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ remove() [2/2]

template<class T >
int GloTOndemandSet< T >::remove ( T *  pObject)
virtual

Entfernt persistentes Objekt aus dem Set. Wenn Set gesperrt, wird das zu entfernende Objekt mit den Sperrmodus des Sets freigegeben. Wenn Set beobachtet wird, wird die Beobachtung des zu entfernende Objekt mit dem Beobachtungsmodus des Sets beendet.

Parameter
[in]pObjectDas zu entfernende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

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