GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::TPointerSet< T > Template-Klassenreferenz

Ein typsicherer Set von Zeigern auf persistente Objekte in der Datenbank (gedacht als Attribut für persistente Objekte).
Objekte können nur einmalig eingefügt werden. Mehr ...

#include <GloTPointerSet.h>

Klassendiagramm für glo::TPointerSet< T >:

Öffentliche Methoden

 TPointerSet ()
 
 TPointerSet (Base &rBase)
 
virtual ~TPointerSet ()
 
virtual int get (std::shared_ptr< T > &rRetVal, EnSeekMode eMode)
 
virtual int get (T *&prRetVal, EnSeekMode eMode)
 
virtual int getTypeAsString (std::string &rsTypeName) override
 
virtual int insert (std::shared_ptr< T > spNewObj)
 
virtual int insert (T *pNewObj)
 
virtual int remove (std::shared_ptr< T > spObject)
 
virtual int remove (T *pObject)
 
- Öffentliche Methoden geerbt von glo::PointerSet
 PointerSet ()
 
 PointerSet (Base &rBase)
 
virtual ~PointerSet ()
 
virtual void clear ()
 
virtual int getPers (BasePersistent *&prRetVal, EnSeekMode eMode)
 
virtual int getPersistent (BasePersistent *&prRetVal, const ObjID &rObjID)
 
virtual int insertPers (BasePersistent *pNewObj)
 
virtual int removePers (BasePersistent *pObject)
 
std::set< BasePersistent * > & Set ()
 
virtual int setCurrentObject (const ObjID &rObjID)
 
virtual int setPosition (std::size_t nPosition)
 
virtual std::size_t size () const
 
virtual void getAllClassIDs (std::list< ObjID > &rAllClassIDs) const
 Siehe Beschreibung in Oberklasse.
 
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.
 
- Öffentliche Methoden geerbt von glo::PointerLot
 PointerLot ()
 
 PointerLot (Base &rBase)
 
virtual ~PointerLot ()
 
virtual BasegetBase () const override
 
virtual int getObjID (ObjID &rObjID, EnSeekMode eMode)
 
virtual int setBase (Base *pBase) override
 
- Öffentliche Methoden geerbt von glo::BaseLot
 BaseLot ()
 
virtual ~BaseLot ()
 
virtual int getPers (std::shared_ptr< BasePersistent > &rRetVal, EnSeekMode eMode)
 
virtual int insertPers (std::shared_ptr< BasePersistent > spNewObj)
 
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 ()
 
virtual ~CallBack ()
 
virtual void notify (NotifyNote &rNote)
 
CallBackoperator= (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.
 

Private Methoden

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

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)
 
void deinit ()
 
void init ()
 
- Geschützte Attribute geerbt von glo::BaseLot
unsigned long m_ulClassID
 

Ausführliche Beschreibung

template<class T>
class glo::TPointerSet< T >

Ein typsicherer Set von Zeigern auf persistente Objekte in der Datenbank (gedacht als Attribut für persistente Objekte).
Objekte können nur einmalig eingefügt werden.

Wenn ein persistentes Objekt mit einem Attribut vom Typ TPointerSet aus der Datenbank in den Speicher geladen wird, werden die in dem TPointerSet enthaltenen Objekt automatisch auch in den Speicher geladen.

Diese Klasse stellt sicher, dass bei den enthaltenen Objekten beim Zerstören des Objekts jeweils die Methode Persistent::forget() der enthaltenen Objekte aufgerufen wird.

Beim Liefern eines Objektes wird jeweils die Methode Persistent::remember() aufgerufen.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ TPointerSet() [1/3]

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

Standard-Konstruktor.

◆ TPointerSet() [2/3]

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

Konstruktor mit Parameterübergabe.

Parameter
[in]rBaseEs wird die Datenbank mitgegeben.

◆ ~TPointerSet()

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

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

Siehe auch
clear()

◆ TPointerSet() [3/3]

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

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ get() [1/2]

template<class T >
int glo::TPointerSet< T >::get ( std::shared_ptr< T > & rRetVal,
EnSeekMode 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 Suchmodus.

Parameterbeispiele:

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == ERR_RANGE zeigt das Ende des AllSets an.

◆ get() [2/2]

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

Liefert ein Objekt aus dem Set in Bezug auf eMode.

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

Parameterbeispiele:

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. Es wird empfohlen, die gleichnamige Methode mit einen std::shared_ptr zu nutzen.

◆ getTypeAsString()

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

Liefert den Typ des Template-Sets, 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::TPointerSet< T >::insert ( std::shared_ptr< T > spNewObj)
virtual

Fügt das übergebene persistentes Objekt im Set ein.

Wenn der Set gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt.

Wenn der Set überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus 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.
Achtung
Der interene Iterator m_poObjSetIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ insert() [2/2]

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

Fügt das übergebene persistentes Objekt im Set hinter ein.

Wenn der Set gesperrt ist, wird das einzufügende Objekt mit den Sperrmodus des Sets gesperrt.

Wenn der Set überwacht wird, wird das einzufügende Objekt mit den Überwachungsmodus des Sets mitüberwacht.

Parameter
[in]pNewObjDas einzufügende persistente Objekt. Wenn kein Fehler, wird der Linkcounter von pNewObj inkrementiert.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_poObjSetIterator zeigt bei erfolgreichen Einfügen auf das eingefügte Element.

◆ operator=()

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

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ remove() [1/2]

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

Entfernt das übergebene persistentes Objekt aus dem Set.

Wenn der Set gesperrt ist, wird das zu entfernende Objekt mit den Sperrmodus des Sets freigegeben.

Wenn der Set überwacht wird, wird die Überwachung des zu entfernende Objekts mit dem Überwachungsmodus 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.
Achtung
Der interene Iterator m_poObjSetIterator zeigt bei erfolgreichen Löschen auf das, dem entfernten nachfolgende Element. Wenn es kein nachfolgendes Element gibt, zeigt der interene Iterator m_poObjSetIterator auf das Kontainerende.

◆ remove() [2/2]

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

Entfernt das übergebene persistentes Objekt aus dem Set.

Wenn der Set gesperrt ist, wird das zu entfernende Objekt mit den Sperrmodus des Sets freigegeben.

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

Parameter
[in]pObjectDas zu entfernende persistente Objekt. Es wird der Linkcounter von pObj dekrementiert, wenn im Set.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Achtung
Der interene Iterator m_poObjSetIterator zeigt bei erfolgreichen Löschen auf das, dem entfernten nachfolgende Element. Wenn es kein nachfolgendes Element gibt, zeigt der interene Iterator m_poObjSetIterator auf das Kontainerende.

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