IniFile
Lade ...
Suche ...
Keine Treffer
ptl::AVDVList Klassenreferenz

Basisklasse für void-pointer Listen. Mehr ...

#include <PtlAVDVList.h>

Klassendiagramm für ptl::AVDVList:

Öffentliche Methoden

 AVDVList (ListMode eMode=DEFAULT)
 
virtual ~AVDVList ()
 
 AVDVList (const AVDVList &rList)
 
virtual void * get (ElementPosition eElementPos)
 
virtual int insert (void *pDataObject, InsertPosition eWhere=InsertLAST, VH eBeforeBehind=BEHIND)
 
std::size_t getSize ()
 
std::size_t getNumberDataObjects (void *pDataObject)
 
virtual void removeAll ()
 
int getErrorCode ()
 
ListMode getListMode ()
 
AVDVListoperator= (const AVDVList &rList)
 

Geschützte Methoden

virtual int _addElementFrom (const AVDVList &rList)
 
DVElementinsertSrc (void *pDataObject, DVElement *pReferenceDVElement, VH eBeforeBehind)
 
DVElementremoveSrc (DVElement *pDeadDVElement)
 

Geschützte Attribute

ListMode m_eListMode
 
int m_iErrorCode
 
DVElementm_pFirstDVElement
 
DVElementm_pLastDVElement
 
std::size_t m_nSize
 

Ausführliche Beschreibung

Basisklasse für void-pointer Listen.

Eine AVDVList besteht aus einer Menge von DVElement, welchen Pointer auf die zu verwaltenden Objekte übergeben werden.

Es können das erste und letzte erfragt sowie gelöscht werden.

Ein Element kann am Anfang oder am Ende angehängt werden. Mit Parameter UNIQUE wird die Liste Datenobjekte nur einmalig aufnehmen.

Diese Klasse ist die Basisklasse für VDQueue und VDVList.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ AVDVList() [1/2]

ptl::AVDVList::AVDVList ( ListMode eMode = DEFAULT)

Konstruktor mit optionaler Parameterübergabe. Die Liste ist erst einmal leer. Es kann mit Parameter 'UNIQUE' eine Liste erstellt werden, welche Datenobjekte nur einmal aufnimmt.

Parameter
[in]eModeDer Listenmodus

◆ ~AVDVList()

virtual ptl::AVDVList::~AVDVList ( )
virtual

Destruktor, Liste wird geleert.

◆ AVDVList() [2/2]

ptl::AVDVList::AVDVList ( const AVDVList & rList)

Copy-Konstruktor.

Parameter
[in]rListDie zu kopierende Liste.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

Dokumentation der Elementfunktionen

◆ _addElementFrom()

virtual int ptl::AVDVList::_addElementFrom ( const AVDVList & rList)
protectedvirtual

Kopiert alle Listenelemente von Parameter rList zu dieser Liste hinzu.

Wird von operator= genutzt.

Es können Datenobjekte aus Unterklassen übernommen werden, wie auch die Unterklassen untereinander Datenobjekte übertragen können.

Es werden nicht die Datenobjekte dupliziert!

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

◆ get()

virtual void * ptl::AVDVList::get ( ElementPosition eElementPos)
virtual

Liefert einen Zeiger auf die Daten aus übergebener eElementPos.

Parameter
[in]eElementPosWelche Daten sollen geliefert werden; die des ersten oder des letzten Elements. Mögliche Werte sind ptl::FIRST_POS und ptl::LAST_POS.
Rückgabe
Der Rückgabewert ist der Zeiger auf die Daten, sonst NULL_PTR.

Beispiel 1:

ptl::AVDVList * myVDVList = new ptl::AVDVList();
DataObject * pDataObject;
...
if ( pDataObject = static_cast<DataObject*>( myVDVList->get(ptl::FIRST_POS) ) )
{
pDataObject->MachWas();
}
Basisklasse für void-pointer Listen.
Definition PtlAVDVList.h:77
virtual void * get(ElementPosition eElementPos)
@ FIRST_POS
Definition PtlListTypes.h:107

Es wird das DataObject aus dem ersten DVElement aus der Liste geliefert, wenn dieses vorhanden ist, ansonsten NULL_PTR.

Beispiel 2:

ptl::AVDVList * myVDVList = new ptl::AVDVList();
DataObject * pDataObject;
...
if ( pDataObject = static_cast<DataObject*>( myVDVList->get(ptl::LAST_POS) ) )
{
pDataObject->MachWas();
}
@ LAST_POS
Definition PtlListTypes.h:108

Es wird das DataObject aus dem letzten DVElement aus der Liste geliefert, wenn dieses vorhanden ist, ansonsten NULL_PTR.

Siehe auch
ElementPosition, m_pFirstDVElement und m_pLastDVElement

Erneute Implementation in ptl::VDVList.

◆ getErrorCode()

int ptl::AVDVList::getErrorCode ( )

Liefert den letzten Fehlercode.

Sollte nach Einfügemethoden aufgerufen werden, um zu überprüfen, ob Fehler aufgetreten sind.

Ist der Fehler INSTANTIATE_DVELEMENT aufgetreten, sollte die Instanz gelöscht werden, wenn keine andere Fehlerbehandlung in Unterklassen implementiert ist.

Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
ERRORS

◆ getListMode()

ListMode ptl::AVDVList::getListMode ( )

Liefert den ListModus.

Rückgabe
Der ListMode ptl::RESPONSIBLE ist nur bei Templatelisten möglich, welche diese Klasse nutzen. Es kann auch eine Kombination der Werte geliefert werden.
Siehe auch
ListMode Beispiel:
...
// if myList with UNIQUE-Bit...
if (myList.getListMode() & UNIQUE)
{
// ...do something...
}
ListMode getListMode()
const ListMode UNIQUE
Definition PtlListTypes.h:340

◆ getNumberDataObjects()

std::size_t ptl::AVDVList::getNumberDataObjects ( void * pDataObject)

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

Parameter
[in]pDataObjectDer Zeiger auf das Objekt
Rückgabe
Die Häufigkeit des Vorkommens von pDataObject

Beispiel:

DataObject * pDataObject = new DataObject();
...
std::size_t nObjCopunter = myList.getNumberDataObjects(pDataObject);
std::size_t getNumberDataObjects(void *pDataObject)

◆ getSize()

std::size_t ptl::AVDVList::getSize ( )

Liefert die Anzahl der in Liste enthaltenen Elemente.

Rückgabe
Die Anzahl der Elemente

Beispiel:

int iSize = myListe.getSize()
std::size_t getSize()

◆ insert()

virtual int ptl::AVDVList::insert ( void * pDataObject,
InsertPosition eWhere = InsertLAST,
VH eBeforeBehind = BEHIND )
virtual

Diese Methode fügt Datenobjekt in die Liste ein.

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 Zeiger auf das Datenobjekt. Wenn dieser Parameter NULL_PTR ist, wird nichts eingefügt.
[in]eWhereZeigt an, wohin das Datenobjekt in die Liste eingefügt werden soll. Mögliche Parameter sind InsertHEAD und InsertLAST.
[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).

Beispiel 1:

int iErr = 0;
ptl::AVDVList * myVDVList = new ptl::AVDVList();
DataObject * pDataObject = new DataObject();
iErr = myVDVList->insert(pDataObject, InsertLAST, BEHIND);
virtual int insert(void *pDataObject, InsertPosition eWhere=InsertLAST, VH eBeforeBehind=BEHIND)
@ InsertLAST
Definition PtlListTypes.h:189
@ BEHIND
Definition PtlListTypes.h:145

Es wird das DataObject an das Ende der Liste hinter dem letzten DVElement (m_pLastDVElement) positioniert.

Beispiel 2:

iErr = myVDVList->insert(pDataObject, InsertLAST, BEFORE);
@ BEFORE
Definition PtlListTypes.h:144

Es wird das DataObject an das Ende der Liste vor dem letzten DVElement (m_pLastDVElement) positioniert.

Beispiel 3:

iErr = myVDVList->insert(pDataObject, InsertHEAD, BEHIND);
@ InsertHEAD
Definition PtlListTypes.h:188

Es wird das DataObject an den Anfang der Liste hinter dem ersten DVElement (m_pFirstDVElement) positioniert.

Beispiel 4:

iErr = myVDVList->insert(pDataObject, InsertHEAD, BEFORE);

Es wird das DataObject an den Anfang der Liste vor dem ersten DVElement (m_pFirstDVElement) positioniert.

Erneute Implementation in ptl::VDVList.

◆ insertSrc()

DVElement * ptl::AVDVList::insertSrc ( void * pDataObject,
DVElement * pReferenceDVElement,
VH eBeforeBehind )
protected

Fügt ein pDataObject vor oder nach dem übergebenen DVElement ein und gibt das neue DVElement retour.

Wenn die Liste UNIQUE ist, wird das DatenObjekt nur eingefügt, wenn es noch nicht in der Liste ist.

Attribute m_pFirstDVElement, m_pLastDVElement und m_nSize werden aktuallisiert.

Es sollte zur Überprüfung der ErrorCode über getErrorCode() abgefragt werden.

Parameter
[in]pDataObjectZeiger auf das Datenobjekt. Wenn dieser Parameter NULL_PTR ist, wird kein neues DVElement eingefügt.
[in]pReferenceDVElementDas Referenz-Element, wo das neue DVElement vor oder angehängt wird.
[in]eBeforeBehindGiebt an, ob neues DVElement an ReferenzDVElement vor- (BEFORE) oder angehängt (BEHIND) wird.
Rückgabe
Das DVElement mit Referenz auf übergebenes pDataObject

◆ operator=()

AVDVList & ptl::AVDVList::operator= ( const AVDVList & rList)

Zuweisungsoperator=

Bei einer Zuweisung werden alle DVElement zerstört und dann alle Datenobjekte aus der zuweisenden VDVList in neue eigene DVElement übernommen.

Parameter
[in]rListDie zuzuweisende Liste.

Es sollte nach Aufruf getErrorCode() aufgerufen werden.

◆ removeAll()

virtual void ptl::AVDVList::removeAll ( )
virtual

Es werden alle DVElement aus der Liste und aus dem Speicher entfernt.

Erneute Implementation in ptl::VDVList.

◆ removeSrc()

DVElement * ptl::AVDVList::removeSrc ( DVElement * pDeadDVElement)
protected

Entfernt übergebenes DVElement aus der Liste

Parameter
[in]pDeadDVElementDas zu entfernende DVElement
Rückgabe
Wenn ein nachfolgendes DVElement vorhanden ist, wird dieser retour geliefert, ansonsten das vorherige DVElement. Wenn übergebenes DVElement das letzte in Liste war, wird NULL_PTR retour geliefert.

Dokumentation der Datenelemente

◆ m_eListMode

ListMode ptl::AVDVList::m_eListMode
protected

Für DVListen, ob sie Datenobjekte mehr- oder nur einmalig zulassen oder Besitzer (verantwortlich, bzw. zerstören auch die Datenobjekte im Destruktor) dieser Datenobjekte sind.

◆ m_iErrorCode

int ptl::AVDVList::m_iErrorCode
protected

Hier ist ein Fehlercode abgelegt (z.B. wenn was beim instanziieren schief geht).

◆ m_nSize

std::size_t ptl::AVDVList::m_nSize
protected

Anzahl der in Liste enthaltenen Elemente.

◆ m_pFirstDVElement

DVElement* ptl::AVDVList::m_pFirstDVElement
protected

Zeiger auf das erste Element in Liste. Wenn Liste leer, ist dieses Attribut gleich NULL_PTR.

◆ m_pLastDVElement

DVElement* ptl::AVDVList::m_pLastDVElement
protected

Zeiger auf das letzte Element in Liste. Wenn Liste leer, ist dieses Attribut gleich NULL_PTR.


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