PPL6-Icon Patrick's Programming Library Version 6.4.21 - Dokumentation
ppl6::CArrayItem Klassenreferenz

Interne Klasse zur Verwaltung der Elemente eines CAssocArrays. Mehr ...

Öffentliche Methoden

 CArrayItem ()
 Konstruktor des Array-Elements. Mehr ...
 
virtual ~CArrayItem ()
 Destruktor eines Array-Elements. Mehr ...
 
int CompareNode (CTreeItem *item2)
 Elemente vergleichen. Mehr ...
 
int CompareValue (void *value)
 Elemente vergleichen. Mehr ...
 
virtual int GetValue (CString *buffer)
 Wert eines Knotens in einem String speichern. Mehr ...
 
int IsFalse (const char *key) const
 
int IsTrue (const char *key) const
 
CTreeItemLeft ()
 Pointer auf linken Knoten auslesen. Mehr ...
 
void operator delete (void *ptr, size_t size)
 Speicher freigeben. Mehr ...
 
void * operator new (size_t size)
 Speicher allokieren. Mehr ...
 
CTreeItemParent ()
 Pointer auf Parent Knoten auslesen. Mehr ...
 
CTreeItemRight ()
 Pointer auf rechten Knoten auslesen. Mehr ...
 

Private Methoden

void Clear ()
 Inhalt des Elements löschen. Mehr ...
 

Private Attribute

CString key
 Enthält den Namen (Schlüssel) dieses Elements. Mehr ...
 
int type
 enthält den Datentyp (siehe datatype) Mehr ...
 
void * value
 Pointer auf den Wert des Elements, der abhängig vom Datentyp ist. Mehr ...
 

Freundbeziehungen

class CAssocArray
 

Ausführliche Beschreibung

Beschreibung:
Diese Klasse wird intern von CAssocArray zur Verwaltung der einzelnen Elemente des Arrays verwendet.

Beschreibung der Konstruktoren und Destruktoren

ppl6::CArrayItem::CArrayItem ( )
Beschreibung:
Der Konstruktor setz die internen Variablen auf 0
ppl6::CArrayItem::~CArrayItem ( )
virtual
Beschreibung:
Der Destruktor stellt sicher, dass das Element keine Daten mehr enthält. Dazu wird die Clear-Funktion aufgerufen

Dokumentation der Elementfunktionen

void ppl6::CArrayItem::Clear ( )
private
Beschreibung:
Diese Funktion prüft, ob das Element Daten enthält und löscht diese. Dazu wird der delete-Operator des jeweiligen Datentyps aufgerufen.
int ppl6::CArrayItem::CompareNode ( CTreeItem item)
virtual
Beschreibung:
Damit Elemente sortiert in den Baum eingehangen werden können, werden die Vergleichsfunktionen CompareNode und CompareValue benötigt. Diese sind in der Basisklasse als "virtuell" deklariert und müssen von der abgeleiteten Klasse überschrieben werden. Bei dieser Funktion wird als Parameter ein Pointer auf ein Baum-Element erwartet.
Parameter
[in]itemPointer auf ein Baum-Element, mit dem dieses Element verglichen werden soll
Rückgabe
Die Funktion muss einen der folgenden 4 Werte zurückliefern:
  • 0: Ist der Wert in item identisch mit dem Wert dieses Elements, muss 0 zurückgegeben werden.
  • +1: Ist der Wert in item größer als der Wert dieses Elements, muss +1 zurückgegeben werden
  • -1: Ist der Wert in item kleiner als der Wert dieses Elements, muss -1 zurückgegeben werden
  • -2: Dieser Wert wird im Fehlerfall zurückgegeben und es wird ein Fehlercode gesetzt. Die Tree-Operation muss dann ebenfalls mit einem Fehler abbrechen und diesen Fehlercode zurückgeben.
Achtung
Beim Vergleich zweier Strings kann die Funktion strcmp nicht direkt verwendet werden, da sie laut Definition Werte kleiner oder größer 0 liefert, aber nicht exakt -1 oder +1.

Erneute Implementation von ppl6::CTreeItem.

int ppl6::CArrayItem::CompareValue ( void *  value)
virtual
Beschreibung:
Damit Elemente sortiert in den Baum eingehangen werden können, werden die Vergleichsfunktionen CompareNode und CompareValue benötigt. Diese sind in der Basisklasse als "virtuell" deklariert und müssen von der abgeleiteten Klasse überschrieben werden. Bei dieser Funktion wird als Parameter ein void Pointer auf einen beliebigen Wert erwartet.
Parameter
[in]valuePointer auf einen beliebigen Wert. Die abgeleitete Klasse muss wissen, wie die Daten zu interpretieren sind.
Rückgabe
Die Funktion muss einen der folgenden 4 Werte zurückliefern:
  • 0: Ist der Wert in value identisch mit dem Wert dieses Elements, muss 0 zurückgegeben werden.
  • +1: Ist der Wert in value größer als der Wert dieses Elements, muss +1 zurückgegeben werden
  • -1: Ist der Wert in value kleiner als der Wert dieses Elements, muss -1 zurückgegeben werden
  • -2: Dieser Wert wird im Fehlerfall zurückgegeben und es wird ein Fehlercode gesetzt. Die Tree-Operation muss dann ebenfalls mit einem Fehler abbrechen und diesen Fehlercode zurückgeben.

Erneute Implementation von ppl6::CTreeItem.

int ppl6::CTreeItem::GetValue ( ppl6::CString buffer)
virtualinherited
Beschreibung:
Diese Funktion ist als "virtuell" definiert und kann implementiert werden, um es zu ermöglichen den Wert eines Knotens in einem String abzubilden. Je nach Datentyp kann dies einfach aber auch unmöglich sein. Die Funktion wird in der Regel nur zu debugging-Zwecken verwende.
Parameter
[out]bufferPointer auf einen String, in dem das Ergebnis gespeichert werden soll
Rückgabe
Bei Erfolg liefert die Funktion true (1) zurück, im Fehlerfall false (0). Wurde die Funktion von der Tree-Klasse nicht implementiert, wird immer false zurückgegeben und der Fehlercode 180 gesetzt.
int ppl6::CTreeItem::IsFalse ( const char *  key) const
inherited
int ppl6::CTreeItem::IsTrue ( const char *  key) const
inherited
CTreeItem * ppl6::CTreeItem::Left ( )
inherited

Diese Funktion gibt einen Pointer auf den Knoten zurück, der links von diesem angehangen ist.

Rückgabe
Pointer auf linken Knoten oder NULL, wenn es keinen gibt.
Seit
Eingeführt mit PPL 6.2.6
void ppl6::CArrayItem::operator delete ( void *  ptr,
size_t  size 
)
Beschreibung:
Die Klasse verwendet Speicher aus dem internen Heap, der durch Aufruf dieses überladenen delete-Operators wieder freigegeben wird
Parameter
[in]ptrZeiger auf den freizugebenden Speicherblock
[in]sizeGröße des Speicherblocks.
void * ppl6::CArrayItem::operator new ( size_t  size)
Beschreibung:
Der New-Operator dieser Klasse wurde überschrieben, damit der Speicher nicht mehr aus dem Hauptspeicher allokoert wird und diesem somit schnell fragmentiert, sondern aus dem internen Heap.
Parameter
[in]sizeGröße des benötigten Speicherblocks. Dieser muss identisch sein mit sizeof(CArrayItem)
Rückgabe
bei Erfolg gibt die Funktion einen Pointer auf den Beginn des Speicherblocks zurück, im Fehlerfall wird eine Exception generiert
Siehe auch
CTreeItem * ppl6::CTreeItem::Parent ( )
inherited

Diese Funktion gibt einen Pointer auf den Vater dieses Knoten zurück.

Rückgabe
Pointer auf den parent Knoten oder NULL, wenn es keinen gibt.
Seit
Eingeführt mit PPL 6.2.6
CTreeItem * ppl6::CTreeItem::Right ( )
inherited

Diese Funktion gibt einen Pointer auf den Knoten zurück, der rechts von diesem angehangen ist.

Rückgabe
Pointer auf rechten Knoten oder NULL, wenn es keinen gibt.
Seit
Eingeführt mit PPL 6.2.6

Freundbeziehungen und Funktionsdokumentation

friend class CAssocArray
friend

Dokumentation der Datenelemente

CString ppl6::CArrayItem::key
private
int ppl6::CArrayItem::type
private
void* ppl6::CArrayItem::value
private

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