GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::TOndemandList< 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 glo::TOndemandList< T >:

Öffentliche Methoden

 TOndemandList ()
 
 TOndemandList (Base &rBase)
 
virtual ~TOndemandList ()
 
virtual int get (std::shared_ptr< T > &rRetVal, const ObjID &rObjID)
 
virtual int get (T *&prRetVal, const ObjID &rObjID)
 
virtual int get (T *&prRetVal, EnSeekMode eMode)
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
virtual int insert (T *NewObj)
 Fügt das übergebene persistentes Objekt in die Liste hinter der aktuellen Position ein.
 
virtual int insert (std::shared_ptr< T > NewObj)
 Fügt das übergebene persistentes Objekt in die Liste hinter der aktuellen Position ein.
 
virtual int insertBefore (T *NewObj, const T *Object)
 Fügt ein persistentes Objekt vor einem anderen Objekt in die Liste ein.
 
virtual int insertBefore (std::shared_ptr< T > NewObj, const std::shared_ptr< T > Object)
 Fügt ein persistentes Objekt vor einem anderen Objekt in die Liste ein.
 
virtual int append (T *NewObj)
 Fügt ein persistentes Objekt an das Ende der Liste ein.
 
virtual int append (std::shared_ptr< T > NewObj)
 Fügt ein persistentes Objekt an das Ende der Liste ein.
 
virtual int remove (T *Object)
 Entfernt das übergebene persistentes Objekt aus der Liste.
 
virtual int remove (std::shared_ptr< T > Object)
 Entfernt das übergebene persistentes Objekt aus der Liste.
 
virtual int get (std::shared_ptr< T > &rRetVal, EnSeekMode eMode)
 Liefert ein Objekt aus der Liste in Bezug auf eMode.
 
virtual int get (TOndemand< T > &rRetVal, EnSeekMode eMode)
 Liefert ein Objekt aus der Liste in Bezug auf eMode.
 
- Öffentliche Methoden geerbt von glo::OndemandList
 OndemandList ()
 
 OndemandList (Base &rBase)
 
virtual ~OndemandList ()
 
virtual int appendOndemand (const Reference &rNewOndemand)
 
virtual void clear ()
 
virtual ReferencegetOndemand (EnSeekMode eMode)
 
virtual int getPersistent (BasePersistent *&prRetVal, const ObjID &rObjID)
 
virtual int insertOndemand (const Reference &rNewOndemand)
 
virtual int removeOndemand (const Reference &rOndemand)
 
virtual int setCurrentObject (const ObjID &rObjID)
 
virtual int setPosition (std::size_t nPosition)
 
virtual std::size_t size () const
 
virtual bool inLot (const ObjID &object) const
 Siehe Beschreibung in Oberklasse.
 
virtual bool inLot (const BasePersistent &object) const
 Siehe Beschreibung in Oberklasse.
 
virtual bool inLot (const std::shared_ptr< BasePersistent > object) const
 Siehe Beschreibung in Oberklasse.
 
virtual bool inLot (const Reference &object) const
 Siehe Beschreibung in Oberklasse.
 
- Öffentliche Methoden geerbt von glo::OndemandLot
 OndemandLot ()
 
 OndemandLot (Base &rBase)
 
virtual ~OndemandLot ()
 
virtual int appendPers (BasePersistent *pNewObj)
 
virtual int getObjID (ObjID &rObjID, EnSeekMode eMode)
 
virtual int getPers (BasePersistent *&prRetVal, EnSeekMode eMode)
 
virtual int insertOndemandBefore (const Reference &rNewOndemand, const Reference &rOndemand)
 
virtual int insertPers (BasePersistent *pNewObj)
 
virtual int insertPers (std::shared_ptr< BasePersistent > spNewObj)
 
virtual int insertPersBefore (BasePersistent *pNewObj, const BasePersistent *pObject)
 
std::list< Reference * > & List ()
 
virtual int removePers (BasePersistent *pObject)
 
- Öffentliche Methoden geerbt von glo::BaseLot
 BaseLot ()
 
 BaseLot (Base &rBase)
 
virtual ~BaseLot ()
 
virtual int appendPers (std::shared_ptr< BasePersistent > spNewObj)
 
virtual int getPers (std::shared_ptr< BasePersistent > &rRetVal, EnSeekMode eMode)
 
virtual int insertPersBefore (std::shared_ptr< BasePersistent > spNewObj, const std::shared_ptr< BasePersistent > spObject)
 
virtual int lock (const LockSpecification &rLockSpecification)
 
virtual int lock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW)
 
virtual int removePers (std::shared_ptr< BasePersistent > spObject)
 
virtual int setWatch (const WatchSpecification &rWatchSpec)
 
virtual int setWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0)
 
virtual int unlock (const LockSpecification &rLockSpecification)
 
virtual int unlock (EnLockMode eLockMode=LK_DELETEvWRITE, EnDeepMode eDeepMode=DM_SHALLOW)
 
virtual int unsetWatch (const WatchSpecification &rWatchSpec)
 
virtual int unsetWatch (TdWatchNotifyMode ulWatchMode, EnDeepMode eDeepMode, CallBack *pCallBack=0)
 
- Öffentliche Methoden geerbt von glo::AbstractBaseLot
 AbstractBaseLot ()
 
virtual ~AbstractBaseLot ()
 
virtual int getPersistent (std::shared_ptr< BasePersistent > &rRetVal, const ObjID &rObjID)
 
virtual int setCurrentObject (const BasePersistent &rObject)
 
- Öffentliche Methoden geerbt von glo::CallBack
 CallBack ()
 
 CallBack (Base &rBase)
 
virtual ~CallBack ()
 
BasegetBase () const
 
virtual void notify (NotifyNote &rNote)
 
CallBackoperator= (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.
 

Private Methoden

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

Weitere Geerbte Elemente

- Öffentliche Attribute geerbt von glo::CallBack
std::string m_strDebugInfo
 
- Geschützte Methoden geerbt von glo::BaseLot
int lockObjID (const ObjID &rObjID)
 
int setWatchObjID (const ObjID &rObjID)
 
int takeOverBase (const BasePersistent *pObj)
 
int takeOverBase (const Reference *pRef)
 
int unlockObjID (const ObjID &rObjID)
 
int unsetWatchObjID (const ObjID &rObjID)
 
- Geschützte Methoden geerbt von glo::CallBack
 CallBack (const CallBack &rT)
 
- Geschützte Attribute geerbt von glo::OndemandLot
std::list< Reference * > m_odRefList
 
std::list< Reference * >::iterator m_odRefListIterator
 
- Geschützte Attribute geerbt von glo::BaseLot
unsigned long m_ulClassID
 

Ausführliche Beschreibung

template<class T>
class glo::TOndemandList< T >

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

Objekte können auch mehrfach und in der Reihenfolge wahlfrei eingefügt werden.

Im Gegensatz zu einer TPointerList (bei der die referenzierten Objekte automatisch 'mitgeladen' werden), ist die TOndemandList eine Liste von Referenzen; es werden die referenzierten Objekte 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

◆ TOndemandList() [1/3]

template<class T >
glo::TOndemandList< T >::TOndemandList ( )

Standard-Konstruktor.

◆ TOndemandList() [2/3]

template<class T >
glo::TOndemandList< T >::TOndemandList ( Base & rBase)

Konstruktor mit Parameterübergabe.

Parameter
[in]rBaseEs wird die Datenbank mitgegeben.

◆ ~TOndemandList()

template<class T >
glo::TOndemandList< T >::~TOndemandList ( )
virtual

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

Siehe auch
clear()

◆ TOndemandList() [3/3]

template<class T >
glo::TOndemandList< T >::TOndemandList ( const TOndemandList< T > & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ append() [1/2]

template<class T >
int glo::TOndemandList< T >::append ( std::shared_ptr< T > NewObj)
virtual

Fügt ein persistentes Objekt an das Ende der Liste ein.

Wenn die Liste gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt.

Wenn die Liste überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus der Liste mitüberwacht.

Parameter
[in]NewObjDas einzufügende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ append() [2/2]

template<class T >
int glo::TOndemandList< T >::append ( T * NewObj)
virtual

Fügt ein persistentes Objekt an das Ende der Liste ein.

Wenn die Liste gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt.

Wenn die Liste überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus der Liste mitüberwacht.

Parameter
[in]NewObjDas einzufügende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ get() [1/5]

template<class T >
int glo::TOndemandList< T >::get ( std::shared_ptr< T > & rRetVal,
const ObjID & rObjID )
virtual

Liefert ein Objekt mit übergebener Objekt-ID aus dem Container.

Parameter
[in,out]rRetValBei keinem Fehler das geholte Objekt.
[in]rObjIDDie Objekt-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Wenn rRetVal gültig, muss dieses Objekt von der aufrufenden Instanz mittels BasePersistent::forget() aus dem Speicher entfernt werden.

◆ get() [2/5]

template<class T >
int glo::TOndemandList< T >::get ( std::shared_ptr< T > & rRetVal,
EnSeekMode 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 Suchmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende des AllSets an.

◆ get() [3/5]

template<class T >
int glo::TOndemandList< T >::get ( T *& prRetVal,
const ObjID & rObjID )
virtual

Liefert ein Objekt mit übergebener Objekt-ID aus dem Container.

Parameter
[in,out]prRetValBei keinem Fehler das geholte Objekt.
[in]rObjIDDie Objekt-ID.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Wenn prRetVal gültig, muss dieses Objekt von der aufrufenden Instanz mittels BasePersistent::forget() aus dem Speicher entfernt werden.

◆ get() [4/5]

template<class T >
int glo::TOndemandList< T >::get ( T *& prRetVal,
EnSeekMode eMode )
virtual

Liefert ein Objekt aus der Liste in Bezug auf eMode.

Parameter
[in,out]prRetValBei keinem Fehler das geholte Objekt.
[in]eModeDer Suchmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende des AllSets an.
Achtung
Wenn prRetVal gültig, muss dieses Objekt von der aufrufenden Instanz aus dem Speicher entfernt werden.

◆ get() [5/5]

template<class T >
int glo::TOndemandList< T >::get ( TOndemand< T > & rRetVal,
EnSeekMode 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 Suchmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende des AllSets an.

◆ getTypeAsString()

template<class T >
int glo::TOndemandList< T >::getTypeAsString ( std::string & rsTypeName)
overridevirtual

Liefert den Typ der Template-Liste, also den Klassennamen als String, wenn mit der Datenbank verbunden.

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

Erneute Implementation von glo::BaseLot.

◆ insert() [1/2]

template<class T >
int glo::TOndemandList< T >::insert ( std::shared_ptr< T > NewObj)
virtual

Fügt das übergebene persistentes Objekt in die Liste hinter der aktuellen Position ein.

Wenn die Liste gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt.

Wenn die Liste überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus der Liste mitüberwacht.

Parameter
[in]NewObjDas einzufügende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ insert() [2/2]

template<class T >
int glo::TOndemandList< T >::insert ( T * NewObj)
virtual

Fügt das übergebene persistentes Objekt in die Liste hinter der aktuellen Position ein.

Wenn die Liste gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt.

Wenn die Liste überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus der Liste mitüberwacht.

Parameter
[in]NewObjDas einzufügende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ insertBefore() [1/2]

template<class T >
int glo::TOndemandList< T >::insertBefore ( std::shared_ptr< T > NewObj,
const std::shared_ptr< T > Object )
virtual

Fügt ein persistentes Objekt vor einem anderen Objekt in die Liste ein.

Wenn die Liste gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt.

Wenn die Liste überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus der Liste mitüberwacht.

Parameter
[in]NewObjDas einzufügende persistente Objekt.
[in]ObjectDas nachfolgende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ insertBefore() [2/2]

template<class T >
int glo::TOndemandList< T >::insertBefore ( T * NewObj,
const T * Object )
virtual

Fügt ein persistentes Objekt vor einem anderen Objekt in die Liste ein.

Wenn die Liste gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus der Liste gesperrt.

Wenn die Liste überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus der Liste mitüberwacht.

Parameter
[in]NewObjDas einzufügende persistente Objekt.
[in]ObjectDas nachfolgende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ operator=()

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

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ remove() [1/2]

template<class T >
int glo::TOndemandList< T >::remove ( std::shared_ptr< T > Object)
virtual

Entfernt das übergebene persistentes Objekt aus der Liste.

Wenn die Liste gesperrt ist, wird das zu entfernende Objekt mit den Sperrmodus der Liste freigegeben.

Wenn die Liste überwacht wird, wird die Überwachung des zu entfernende Objekts mit dem Überwachungsmodus der Liste beendet.

Parameter
[in]ObjectDas zu entfernende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Löschen auf das, dem entfernten nachfolgende Element. Wenn es kein nachfolgendes Element gibt, zeigt der interene Iterator m_odRefListIterator auf das Kontainerende.

◆ remove() [2/2]

template<class T >
int glo::TOndemandList< T >::remove ( T * Object)
virtual

Entfernt das übergebene persistentes Objekt aus der Liste.

Wenn die Liste gesperrt ist, wird das zu entfernende Objekt mit den Sperrmodus der Liste freigegeben.

Wenn die Liste überwacht wird, wird die Überwachung des zu entfernende Objekts mit dem Überwachungsmodus der Liste beendet.

Parameter
[in]ObjectDas zu entfernende persistente Objekt.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_odRefListIterator zeigt bei erfolgreichen Löschen auf das, dem entfernten nachfolgende Element. Wenn es kein nachfolgendes Element gibt, zeigt der interene Iterator m_odRefListIterator auf das Kontainerende.

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