GlobalObjects
GloTOndemandList< T > Template-Klassenreferenz

Eine typsichere Liste von Referenzen auf persistente Objekte in der Datenbank (gedacht als Attribut für persistente Objekte). Mehr ...

#include <GloTOndemandList.h>

Klassendiagramm für GloTOndemandList< T >:

Öffentliche Methoden

 GloTOndemandList ()
 
 GloTOndemandList (GloBase &rBase)
 
virtual ~GloTOndemandList ()
 
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 GloOndemandList
 GloOndemandList ()
 
 GloOndemandList (GloBase &rBase)
 
virtual ~GloOndemandList ()
 
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)
 
std::list< GloReference * > & List ()
 
virtual int removeOndemand (const GloReference &rOndemand)
 
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

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

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 GloTOndemandList< T >

Eine typsichere Liste von Referenzen auf persistente Objekte in der Datenbank (gedacht als Attribut für persistente Objekte).

Im Gegensatz zu einer GloTPointerList (bei dem die referenzierten Objekte 'mitgeladen' werden), ist der GloTOndemandList eine Liste 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

◆ GloTOndemandList() [1/3]

template<class T >
GloTOndemandList< T >::GloTOndemandList

Standard-Konstruktor.

◆ GloTOndemandList() [2/3]

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

Konstruktor mit Parameterübergabe.

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

◆ ~GloTOndemandList()

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

Destruktor, es wird für alle Objekte in der Objekt-Liste der listeneigene Sperr- und Beobachtungsmodus aufgehoben und dann die Objekt-Liste geleert.

◆ GloTOndemandList() [3/3]

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

Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ append() [1/2]

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

Fügt ein persistentes Objekt an das Ende der Liste ein. Wenn Liste gesperrt, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt. Wenn Liste beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus der Liste 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 GloTOndemandList< T >::append ( T *  pNewObj)
virtual

Fügt ein persistentes Objekt an das Ende der Liste ein. Wenn Liste gesperrt, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt. Wenn Liste beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus der Liste 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 GloTOndemandList< T >::get ( std::shared_ptr< T > &  rRetVal,
GloEnSeekMode  eMode 
)
virtual

Liefert ein Objekt aus der Liste 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 der Liste an.

◆ get() [2/2]

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

Liefert ein Objekt aus der Liste 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 der Liste an.
Achtung
Wenn prRetVal gültig, muss dieses Objekt von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ getTypeAsString()

template<class T >
int GloTOndemandList< 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 GloTOndemandList< T >::insert ( std::shared_ptr< T >  spNewObj)
virtual

Fügt ein persistentes Objekt in die Liste hinter der aktuellen Position ein. Wenn Liste gesperrt, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt. Wenn Liste beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus der Liste 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 GloTOndemandList< T >::insert ( T *  pNewObj)
virtual

Fügt ein persistentes Objekt in die Liste hinter der aktuellen Position ein. Wenn Liste gesperrt, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt. Wenn Liste beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus der Liste 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 GloTOndemandList< T >::insertBefore ( std::shared_ptr< T >  spNewObj,
const std::shared_ptr< T >  spObject 
)
virtual

Fügt ein persistentes Objekt vor einem anderen Objekt in die Liste ein. Wenn Liste gesperrt, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt. Wenn Liste beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus der Liste 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 GloTOndemandList< T >::insertBefore ( T *  pNewObj,
const T *  pObject 
)
virtual

Fügt ein persistentes Objekt vor einem anderen Objekt in die Liste ein. Wenn Liste gesperrt, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt. Wenn Liste beobachtet wird, wird das einzufügende Objekt mit den Beobachtungsmodus der Liste 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 >
GloTOndemandList< T >& GloTOndemandList< T >::operator= ( const GloTOndemandList< T > &  )
private

Zuweisungsoperator ist nicht verfügbar.

◆ remove() [1/2]

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

Entfernt persistentes Objekt aus der Liste. Wenn Liste gesperrt, wird das zu entfernende Objekt mit den Sperrmodus der Liste freigegeben. Wenn Liste beobachtet wird, wird die Beobachtung des zu entfernende Objekt mit dem Beobachtungsmodus der Liste 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 GloTOndemandList< T >::remove ( T *  pObject)
virtual

Entfernt persistentes Objekt aus der Liste. Wenn Liste gesperrt, wird das zu entfernende Objekt mit den Sperrmodus der Liste freigegeben. Wenn Liste beobachtet wird, wird die Beobachtung des zu entfernende Objekt mit dem Beobachtungsmodus der Liste 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: