IniFile
Lade ...
Suche ...
Keine Treffer
ptl::TDVList< T_DATA > Template-Klassenreferenz

Template-Listenklasse für Zeiger auf Objekte. Mehr ...

#include <PtlTDVList.h>

Klassendiagramm für ptl::TDVList< T_DATA >:

Öffentliche Methoden

 TDVList (ListMode eMode=DEFAULT)
 
virtual ~TDVList ()
 
 TDVList (const TDVList &rList)
 
virtual int insert (T_DATA *pDataObject, InsertPosition eWhere=InsertLAST, VH eBeforeBehind=BEHIND)
 
virtual T_DATA * get (ElementPosition eElementPos=FIRST_POS)
 
int get (T_DATA *&prRetVal, std::size_t nPosition, SeekMode eMode)
 
int get (T_DATA *&prRetVal, std::size_t nPosition, DVElement *pRefElement)
 
int remove (ElementPosition eElementPos=CURRENT_POS)
 
void removeAll ()
 
int setCurrentPosition (T_DATA *pDataObject)
 
std::size_t getNumberDataObjects (T_DATA *pDataObject)
 
ListMode getListMode () override
 
virtual int addElementFrom (TDVList &rList)
 
TDVList< T_DATA > & operator= (const TDVList &rList)
 
- Öffentliche Methoden geerbt von ptl::ATDVList
 ATDVList (ListMode eMode=DEFAULT)
 
virtual ~ATDVList ()
 
int currentElementCache (ElementCache eWhich)
 
int getErrorCode ()
 
VDVListgetVDVList ()
 
std::size_t getSize ()
 

Weitere Geerbte Elemente

- Geschützte Attribute geerbt von ptl::ATDVList
VDVListm_VDVListe
 

Ausführliche Beschreibung

template<class T_DATA>
class ptl::TDVList< T_DATA >

Template-Listenklasse für Zeiger auf Objekte.

Eine TDVList besteht aus Listenelementen, welchen Zeiger auf die zu verwaltenden Objekte haben. Es können das erste, letzte und aktuelle Element erfragt werden. Zusätzlich kann nach einem nachfolgenden, bzw. vorherigen Element (bezüglich dem aktuellen Element) selektiert werden.

Ein Element kann vor oder hinter dem ersten, letzten und aktuellen Element eingefügt werden. Dieses kann durch Einstellung einer UNIQUE Liste in der Weise eingeschränkt werden, daß Objekte nur einmalig in der Liste vorkommen dürfen.

Gelöscht werden kann das erste, letzte oder aktuelle Element, wobei das DatenObjekt mitgelöscht wird, wenn dieses (über Einstellung RESPONSIBLE oder UNIQUE | RESPONSIBLE) eingestellt ist.

Um eine Typsicherheit herzustellen, wurde dieses eine Templateklasse mit Aggregation auf VDVList. Mit meist inline-Methoden werden äquivalente Methoden in der VDVList aufgerufen.

Template-Parameter
<B>T_DATA</B>Typ des List-Objektzeigers
Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ TDVList() [1/2]

template<class T_DATA >
ptl::TDVList< T_DATA >::TDVList ( ListMode eMode = DEFAULT)

Konstruktor mit optionaler Parameterübergabe.

Die Liste ist erst einmal leer. Durch Parameter eMode kann eine Liste instanziiert werden, welche Datenobjekte mehrmals (keinen Parameter oder DEFAULT) oder nur einmalig (UNIQUE) aufnimmt und/oder Besitzer der Datenobjekte sein soll (RESPONSIBLE). Die Werte können Oder-Verknüpft (z.B. UNIQUE | RESPONSIBLE) übergeben werden.

Parameter
[in]eModeDer Listenmodus

Beispiel

TestObject * pMyTestObject = new TestObject();
Template-Listenklasse für Zeiger auf Objekte.
Definition PtlTDVList.h:98

◆ ~TDVList()

template<class T_DATA >
ptl::TDVList< T_DATA >::~TDVList ( )
virtual

Destruktor, die Liste wird geleert.

Wenn die Liste mit Parameter RESPONSIBLE instanziiert worden sein sollte, werden auch alle Datenobjekte zerstört.

◆ TDVList() [2/2]

template<class T_DATA >
ptl::TDVList< T_DATA >::TDVList ( const TDVList< T_DATA > & rList)

Copy-Konstruktor.

Parameter
[in]rListDie Liste, deren Zeiger auf Objekte in diese Liste kopiert werden.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

Dokumentation der Elementfunktionen

◆ addElementFrom()

template<class T_DATA >
int ptl::TDVList< T_DATA >::addElementFrom ( TDVList< T_DATA > & rList)
virtual

Kopiert alle Listenelemente von Parameter rList zu dieser Liste hinzu.

Es können Datenobjekte aus Unterklassen übernommen werden, wie auch die Unterklassen untereinander Datenobjekte übertragen können. Es werden nicht die Datenobjekte, sondern nur die Zeiger auf diese dupliziert.

Wenn es ein aktuelles Element gab, bleibt dieses was es war, ansonsten wird das letzte Element zum aktuellen Element.

Sollte die Liste mit Parameter UNIQUE instanziiert worden sein und ein Datenobjekt schon in der Liste sein, wird es nicht eingefügt.

Parameter
[in]rListDie Liste, aus der die Elemente übernommen werden.
Rückgabe
Ein Rückgabewerte < 0 zeigt einen Fehler an.

◆ get() [1/3]

template<class T_DATA >
T_DATA * ptl::TDVList< T_DATA >::get ( ElementPosition eElementPos = FIRST_POS)
virtual

Liefert einen Zeiger auf ein DatenObjekt aus der im Parameter angegebenen Elementposition.

Wenn ein Element geliefert wurde, wird dieses zum aktuellen Element, ansonsten bleibt das aktuellen Element was es war.

Parameter
[in]eElementPosAus welcher Position soll das datenobjekt geliefert werden? Mögliche Werte sind FIRST_POS, LAST_POS, CURRENT_POS, NEXT_POS oder PREVIOUS_POS.
Rückgabe
Der Zeiger auf das Datenobjekts, sonst NULL_PTR.

◆ get() [2/3]

template<class T_DATA >
int ptl::TDVList< T_DATA >::get ( T_DATA *& prRetVal,
std::size_t nPosition,
DVElement * pRefElement )

Liefert einen Zeiger auf ein Objekt in prRetVal aus übergebener Position in Bezug auf übergebenen Zeiger auf ein Element.

Parameter
[in,out]prRetValIm übergebenen Pointer wird ein gefundenes Objekt geliefert.
[in]nPositionDie Position rellativ zum übergebenen pRefElement
[in]pRefElementDas Referenzelement
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == RANGE zeigt das Ende der Liste an.

◆ get() [3/3]

template<class T_DATA >
int ptl::TDVList< T_DATA >::get ( T_DATA *& prRetVal,
std::size_t nPosition,
SeekMode eMode )

Liefert einen Zeiger auf ein Objekt in prRetVal aus der Liste in Bezug auf die Übergabe-Parameter.

Mit dieser Methode kann durch die Liste iteriert werden.

Parameter
[in,out]prRetValIm übergebenen Zeiger wird ein gefundenes Objekt geliefert.
[in]nPositionDie Position rellativ zum Suchmodus.
[in]eModeDer Suchmodus.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an. Eine Rückgabe == RANGE zeigt das Ende der Liste an.

Parameterbeispiele:

  • lPosition = 0; eMode = START -> Liefert erstes Element aus Liste
  • lPosition = 0; eMode = END -> Liefert letztes Element aus Liste
  • lPosition = 0; eMode = CURRENT -> Liefert aktuelles Element aus Liste
  • lPosition = 1; eMode = CURRENT -> Liefert nächstes Element aus Liste
  • lPosition = 2; eMode = CURRENT -> Liefert übernächstes Element aus Liste
  • lPosition = -1; eMode = CURRENT -> Liefert vorgeriges Element aus Liste

◆ getListMode()

template<class T_DATA >
ListMode ptl::TDVList< T_DATA >::getListMode ( )
overridevirtual

Liefert den ListModus.

Rückgabe
Der ListMode welche diese Klasse nutzen. Es kann auch eine Kombination der Werte geliefert werden.

Implementiert ptl::ATDVList.

◆ getNumberDataObjects()

template<class T_DATA >
size_t ptl::TDVList< T_DATA >::getNumberDataObjects ( T_DATA * pDataObject)

Liefert die Anzahl der Datenobjekte zurück, welche gleich des übergebenen Datenobjekts sind.

Parameter
[in]pDataObjectDer Zeiger auf das Objekt
Rückgabe
Die Häufigkeit des Vorkommens von pDataObject
Siehe auch
AVDVList::getNumberDataObjects(...)

◆ insert()

template<class T_DATA >
int ptl::TDVList< T_DATA >::insert ( T_DATA * pDataObject,
InsertPosition eWhere = InsertLAST,
VH eBeforeBehind = BEHIND )
virtual

Diese Methode fügt den Zeiger auf ein Datenobjekt in die Liste ein. Das aktuelle Element wird auf das neue Element gesetzt.

Sollte die Liste mit Parameter UNIQUE instanziiert worden sein und das Datenobjekt schon in der Liste sein, wird es nicht eingefügt.

Parameter
[in]pDataObjectIst der Zeiger auf das Datenobjekt.
[in]eWhereZeigt an, wohin das Datenobjekt in die Liste eingefügt werden soll. Mögliche Parameter sind InsertHEAD, InsertLAST und InsertCURRENT .
[in]eBeforeBehindGibt an, ob das neue Element vor oder hinter das, im Parameter eWhere angegebene Element, gesetzt wird. Mögliche Parameter sind BEFORE und BEHIND.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an. Folgende Fehler sind möglich: PASSED_NO_OBJECT, INSTANTIATE_DVELEMENT und OBJECT_ALREADY_AVAILABLE (nur bei UNIQUE).

◆ operator=()

Zuweisungsoperator=

Bei einer Zuweisung werden alle Elemente aus dieser Liste entfernt (wenn die Liste mit Parameter RESPONSIBLE instanziiert worden sein sollte, werden auch alle Datenobjekte zerstört.) und dann alle Datenobjekte aus der zuweisenden Liste in diese Liste übernommen.

Parameter
[in]rListDie zuzuweisende Liste.

Es sollte nach diesem Aufruf getErrorCode() aufgerufen werden.

◆ remove()

template<class T_DATA >
int ptl::TDVList< T_DATA >::remove ( ElementPosition eElementPos = CURRENT_POS)

Entfernt das Element, welches als Parameter angegeben ist, aus der Liste.

Wenn ein nachfolgendes Element vorhanden ist, wird dieses zum aktuellen Element, ansonsten das vorherige Element, wenn dieses vorhanden ist. Sollte Liste mit Parameter RESPONSIBLE instanziiert worden sein, wird vom entfernten Datenobjekte der Destruktor aufgerufen.

Parameter
[in]eElementPosMögliche Werte sind FIRST_POS, LAST_POS und CURRENT_POS.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ removeAll()

template<class T_DATA >
void ptl::TDVList< T_DATA >::removeAll ( )

Entfernt alle Elemente aus Liste.

Sollte die Liste mit Parameter RESPONSIBLE instanziiert worden sein, wird von jedem entfernten Datenobjekten der Destruktor aufgerufen.

◆ setCurrentPosition()

template<class T_DATA >
int ptl::TDVList< T_DATA >::setCurrentPosition ( T_DATA * pDataObject)

Wenn DVElement mit übergebener Zeiger in Liste vorhanden ist, wird der aktuelle Zeiger auf das DVElement gesetzt, ansonsten bleibt der aktuelle Zeiger was er war.

Parameter
[in]pDataObjectDas gesuchte Datenobjekt
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

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