GlobalObjects
Loading...
Searching...
No Matches
glo::TPointerList< T > Class Template Reference

A type-safe list of pointers to persistent objects in the database (intended as an attribute for persistent objects). More...

#include <GloTPointerList.h>

Inheritance diagram for glo::TPointerList< T >:

Public Member Functions

 TPointerList ()
 
 TPointerList (Base &rBase)
 
virtual ~TPointerList ()
 
virtual int append (std::shared_ptr< T > spNewObj)
 
virtual int append (T *pNewObj)
 
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 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)
 
- Public Member Functions inherited from glo::PointerList
 PointerList ()
 
 PointerList (Base &rBase)
 
virtual ~PointerList ()
 
virtual int appendPers (BasePersistent *pNewObj)
 
virtual void clear ()
 
virtual int getPers (BasePersistent *&prRetVal, EnSeekMode eMode)
 
virtual int getPersistent (BasePersistent *&prRetVal, const ObjID &rObjID)
 
virtual int insertPers (BasePersistent *pNewObj)
 
std::list< BasePersistent * > & List ()
 
virtual int removePers (BasePersistent *pObject)
 
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
 See description in superclass.
 
virtual bool inLot (const ObjID &object) const
 See description in superclass.
 
virtual bool inLot (const BasePersistent &object) const
 See description in superclass.
 
virtual bool inLot (const std::shared_ptr< BasePersistent > object) const
 See description in superclass.
 
- Public Member Functions inherited from glo::PointerLot
 PointerLot ()
 
 PointerLot (Base &rBase)
 
virtual ~PointerLot ()
 
virtual int getObjID (ObjID &rObjID, EnSeekMode eMode)
 
virtual int insertPersBefore (BasePersistent *pNewObj, const BasePersistent *pObject)
 
- Public Member Functions inherited from 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 insertPers (std::shared_ptr< BasePersistent > spNewObj)
 
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)
 
- Public Member Functions inherited from glo::AbstractBaseLot
 AbstractBaseLot ()
 
virtual ~AbstractBaseLot ()
 
virtual int getPersistent (std::shared_ptr< BasePersistent > &rRetVal, const ObjID &rObjID)
 
virtual int setCurrentObject (const BasePersistent &rObject)
 
- Public Member Functions inherited from 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
 Comparison operator, all attributes are compared.
 
bool operator!= (const CallBack &rT) const
 Comparison operator, all attributes are compared.
 

Private Member Functions

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

Additional Inherited Members

- Public Attributes inherited from glo::CallBack
std::string m_strDebugInfo
 
- Protected Member Functions inherited from 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)
 
- Protected Member Functions inherited from glo::CallBack
 CallBack (const CallBack &rT)
 
- Protected Attributes inherited from glo::BaseLot
unsigned long m_ulClassID
 

Detailed Description

template<class T>
class glo::TPointerList< T >

A type-safe list of pointers to persistent objects in the database (intended as an attribute for persistent objects).

Objects can also be inserted multiple times and in any order.

When a persistent object with an attribute of type TPointerList is loaded from the database into memory, the objects contained in the TPointerList are automatically loaded into memory.

This class ensures that the method Persistent::forget() of the contained objects is called when the object is destroyed.

When an object is delivered, the method Persistent::remember() is called.

Author
Helmut Jakoby

Constructor & Destructor Documentation

◆ TPointerList() [1/3]

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

Standard constructor.

◆ TPointerList() [2/3]

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

Constructor with parameter passing.

Parameters
[in]rBaseThe database is passed.

◆ ~TPointerList()

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

Destructor, for all objects in the object set the own lock and watch mode is cancelled and then the object set is emptied.

See also
clear()

◆ TPointerList() [3/3]

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

The copy constructor is not available.

Member Function Documentation

◆ append() [1/2]

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

Appends a persistent object to the end of the list.

If the list is locked, the object to be inserted is locked with the lock mode of the list.

If the list is monitored, the object to be inserted is also monitored with the monitoring mode of the list.

Parameters
[in]spNewObjThe persistent object to be inserted in a std::shared_ptr.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the inserted element if the insertion is successful.

◆ append() [2/2]

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

Appends a persistent object to the end of the list.

If the list is locked, the object to be inserted is locked with the lock mode of the list.

If the list is monitored, the object to be inserted is also monitored with the monitoring mode of the list.

Parameters
[in]pNewObjThe persistent object to be inserted. If no error, the linkcounter is incremented by pNewObj.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the inserted element if the insertion is successful.

◆ get() [1/2]

template<class T >
int glo::TPointerList< T >::get ( std::shared_ptr< T > & rRetVal,
EnSeekMode eMode )
virtual

Returns an object from the list in relation to eMode.

Parameters
[in,out]rRetValIf no error, the fetched object in a std::shared_ptr.
[in]eModeThe seek mode.

Parameter examples:

Returns
A return < 0 indicates an error. A return == ERR_RANGE indicates the end of the AllSet.

◆ get() [2/2]

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

Returns an object from the list in relation to eMode.

Parameters
[in,out]prRetValIf no error, the fetched object.
[in]eModeThe seek mode.

Parameter examples:

Returns
A return < 0 indicates an error. A return == ERR_RANGE indicates the end of the AllSet.
Attention
If prRetVal is valid, this object must be removed from memory by the calling instance.

◆ getTypeAsString()

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

Returns the type of the template list, i.e. the class name as string when connected to the database.

Parameters
[in,out]rsTypeNameThe type name.
Returns
If return value < 0, an error has occurred.

Reimplemented from glo::BaseLot.

◆ insert() [1/2]

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

Inserts the passed persistent object into the list behind the current position.

If the list is locked, the object to be inserted is locked with the lock mode of the list.

If the list is monitored, the object to be inserted is also monitored with the monitoring mode of the list.

Parameters
[in]spNewObjThe persistent object to be inserted in a std::shared_ptr.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the inserted element if the insertion is successful.

◆ insert() [2/2]

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

Inserts the passed persistent object into the list behind the current position.

If the list is locked, the object to be inserted is locked with the lock mode of the list.

If the list is monitored, the object to be inserted is also monitored with the monitoring mode of the list.

Parameters
[in]pNewObjThe persistent object to be inserted. If no error, the linkcounter is incremented by pNewObj.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the inserted element if the insertion is successful.

◆ insertBefore() [1/2]

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

Inserts a persistent object before another object in the list.

If the list is locked, the object to be inserted is locked with the lock mode of the list.

If the list is monitored, the object to be inserted is also monitored with the monitoring mode of the list.

Parameters
[in]spNewObjThe persistent object to be inserted in a std::shared_ptr.
[in]spObjectThe subsequent persistent object.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the inserted element if the insertion is successful.

◆ insertBefore() [2/2]

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

Inserts a persistent object before another object in the list.

If the list is locked, the object to be inserted is locked with the lock mode of the list.

If the list is monitored, the object to be inserted is also monitored with the monitoring mode of the list.

Parameters
[in]pNewObjThe persistent object to be inserted. If no error, the linkcounter is incremented by pNewObj.
[in]pObjectThe subsequent persistent object.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the inserted element if the insertion is successful.

◆ operator=()

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

The assignment operator is not available.

◆ remove() [1/2]

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

Removes the passed persistent object from the list.

If the list is locked, the object to be removed is released with the lock mode of the list.

If the list is monitored, the monitoring of the object to be removed is ended with the monitoring mode of the list.

Parameters
[in]spObjectThe persistent object to be removed in a std::shared_ptr.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the element following the removed one if the deletion was successful. If there is no subsequent element, the internal iterator m_poObjListIterator points to the container end.

◆ remove() [2/2]

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

Removes the passed persistent object from the list.

If the list is locked, the object to be removed is released with the lock mode of the list.

If the list is monitored, the monitoring of the object to be removed is ended with the monitoring mode of the list.

Parameters
[in]pObjectThe persistent object to be removed. The linkcounter of pObj is decremented, if in list.
Returns
A return value < 0 indicates an error.
Attention
The internal iterator m_poObjListIterator points to the element following the removed one if the deletion was successful. If there is no subsequent element, the internal iterator m_poObjListIterator points to the container end.

The documentation for this class was generated from the following file: