IniFile
|
Template-Listenklasse für Zeiger auf Objekte. Mehr ...
#include <PtlTDVList.h>
Ö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 () |
VDVList * | getVDVList () |
std::size_t | getSize () |
Weitere Geerbte Elemente | |
Geschützte Attribute geerbt von ptl::ATDVList | |
VDVList * | m_VDVListe |
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.
<B>T_DATA</B> | Typ des List-Objektzeigers |
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.
[in] | eMode | Der Listenmodus |
Beispiel
|
virtual |
Destruktor, die Liste wird geleert.
Wenn die Liste mit Parameter RESPONSIBLE instanziiert worden sein sollte, werden auch alle Datenobjekte zerstört.
Copy-Konstruktor.
[in] | rList | Die Liste, deren Zeiger auf Objekte in diese Liste kopiert werden. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
|
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.
[in] | rList | Die Liste, aus der die Elemente übernommen werden. |
|
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.
[in] | eElementPos | Aus welcher Position soll das datenobjekt geliefert werden? Mögliche Werte sind FIRST_POS, LAST_POS, CURRENT_POS, NEXT_POS oder PREVIOUS_POS. |
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.
[in,out] | prRetVal | Im übergebenen Pointer wird ein gefundenes Objekt geliefert. |
[in] | nPosition | Die Position rellativ zum übergebenen pRefElement |
[in] | pRefElement | Das Referenzelement |
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.
[in,out] | prRetVal | Im übergebenen Zeiger wird ein gefundenes Objekt geliefert. |
[in] | nPosition | Die Position rellativ zum Suchmodus. |
[in] | eMode | Der Suchmodus. |
Parameterbeispiele:
|
overridevirtual |
Liefert den ListModus.
Implementiert ptl::ATDVList.
Liefert die Anzahl der Datenobjekte zurück, welche gleich des übergebenen Datenobjekts sind.
[in] | pDataObject | Der Zeiger auf das Objekt |
|
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.
[in] | pDataObject | Ist der Zeiger auf das Datenobjekt. |
[in] | eWhere | Zeigt an, wohin das Datenobjekt in die Liste eingefügt werden soll. Mögliche Parameter sind InsertHEAD, InsertLAST und InsertCURRENT . |
[in] | eBeforeBehind | Gibt an, ob das neue Element vor oder hinter das, im Parameter eWhere angegebene Element, gesetzt wird. Mögliche Parameter sind BEFORE und BEHIND. |
TDVList< T_DATA > & ptl::TDVList< T_DATA >::operator= | ( | const TDVList< T_DATA > & | rList | ) |
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.
[in] | rList | Die zuzuweisende Liste. |
Es sollte nach diesem Aufruf getErrorCode() aufgerufen werden.
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.
[in] | eElementPos | Mögliche Werte sind FIRST_POS, LAST_POS und CURRENT_POS. |
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.