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

Eine Queue-Klasse. Mehr ...

Öffentliche Methoden

 CQueue ()
 Konstruktor der Klasse. Mehr ...
 
 CQueue (int max)
 Konstruktor der Klasse mit Limit. Mehr ...
 
 ~CQueue ()
 Destruktor der Klasse. Mehr ...
 
int Add (const void *item)
 Element in die Queue legen. Mehr ...
 
void Clear ()
 Queue löschen. Mehr ...
 
int Count ()
 Anzahl Elemente in der Queue. Mehr ...
 
const void * Get ()
 Objekt aus der Queue nehmen. Mehr ...
 
int Put (const void *item)
 Element in die Queue legen. Mehr ...
 
void SetMaximum (int max)
 Limit setzen. Mehr ...
 
void UseMutex (bool flag)
 Threadsicherheit. Mehr ...
 

Private Attribute

int count
 
void * first
 
void * last
 
int max
 
CMutex Mutex
 
bool usemutex
 

Ausführliche Beschreibung

Dies ist eine Klasse zum "parken" von Objekten in einer Queue. Sie arbeitet nach dem FiFo-Prinzip (First In, First Out), das heißt was zuerst hineingegeben wurde, kommt auch zuerst wieder hinaus.

Die Anzahl Objekte in der Queue kann man durch Aufruf von CQueue::SetMaximum limitieren.

Seit
Diese Klasse wurde mit Version 6.2.6 eingeführt und in 6.3.0 überarbeitet und dokumentiert.

Beschreibung der Konstruktoren und Destruktoren

ppl6::CQueue::CQueue ( )

Der Konstruktor initialisiert die Liste und setzt den Counter auf 0. Die Anzahl Objekte ist unlimitiert.

ppl6::CQueue::CQueue ( int  max)

Der Konstruktor initialisiert die Liste und setzt den Counter auf 0. Die maximale Anzahl Objekte wird auf den angegebenen Wert max gesetzt.

Parameter
[in]maxLimit für die Anzahl Objekte in der Queue
ppl6::CQueue::~CQueue ( )

Der Destruktor ruft die Clear-Funktion der Klasse auf, womit die Queue gelöscht wird. Dabei muß berücksichtigt werden, dass nur die Queue selbst gelöscht wird, nicht aber die darin eventuell noch vorhandenen Objekte. Dies ist nicht möglich, da die Queue den Typ der Objekte nicht kennt und so deren Speicher nicht freigeben kann.

Dokumentation der Elementfunktionen

int ppl6::CQueue::Add ( const void *  item)

Mit diesem Befehl wird der Zeiger auf ein beliebiges Objekt in der Queue abgelegt.

Parameter
[in]itemPointer auf das Objekt oder den Speicherbereich, der in die Queue gelegt werden soll.
Rückgabe
Bei Erfolg liefert die Funktion 1 zurück, sonst 0. Ein Fehler kann auftreten, wenn ein Limit auf die Anzahl Objekte angegeben wurde und dieses erreicht ist, oder wenn kein Speicher mehr zur Verfügung steht. Auch darf item nicht NULL sein.
void ppl6::CQueue::Clear ( )

Mit diesem Befehl wird die Queue gelöscht. Dabei muß berücksichtigt werden, dass nur die Queue selbst gelöscht wird, nicht aber die darin eventuell noch vorhandenen Objekte. Dies ist nicht möglich, da die Queue den Typ der Objekte nicht kennt und so deren Speicher nicht freigeben kann.

Vor Aufruf der Funktion sollten daher alle verbliebenen Objekte von der Anwendung mit CQueue::Get entfernt und ordnungsgemäß gelöscht werden.

int ppl6::CQueue::Count ( )

Dieser Befehl liefert die Anzahl Elemente zurück, die sich aktuell in der Queue befinden.

Rückgabe
Anzahl Elemente in der Queue
const void * ppl6::CQueue::Get ( )

Mit diesem Befehl wird ein Objekt aus der Queue entfernt und dessen Pointer zurückgegeben.

Rückgabe
Pointer auf das älteste Objekt aus der Queue oder NULL, wenn die Queue leer ist.
int ppl6::CQueue::Put ( const void *  item)

Mit diesem Befehl wird der Zeiger auf ein beliebiges Objekt in der Queue abgelegt.

Parameter
[in]itemPointer auf das Objekt oder den Speicherbereich, der in die Queue gelegt werden soll.
Rückgabe
Bei Erfolg liefert die Funktion 1 zurück, sonst 0. Ein Fehler kann auftreten, wenn ein Limit auf die Anzahl Objekte angegeben wurde und dieses erreicht ist, oder wenn kein Speicher mehr zur Verfügung steht. Auch darf item nicht NULL sein.
void ppl6::CQueue::SetMaximum ( int  max)

Mit diesem Befehl wird die maximale Anzahl Objekte in der Queue auf den angegebenen Wert max begrenzt. Dies ist allerdings nur möglich, wenn die Liste noch leer ist oder weniger Elemente als max enthält.

Parameter
[in]maxMaximale Anzahl Objekte. Die Angabe von 0 hebt das Limit auf.
void ppl6::CQueue::UseMutex ( bool  flag)

Wird diese Funktion mit true aufgerufen, wird bei jeder Operation mit Put, Add oder Get ein Mutex gesetzt, womit die Klasse Threadsicher wird. Defaultmäßig wird kein Mutex verwendet, wodurch die Klasse etwas schneller ist. Die Anwendung muss dann selbst sicherstellen, dass nicht mehrere Threads parallel zugreifen.

Parameter
[in]flagMutex ein oder ausschalten (true/false)

Dokumentation der Datenelemente

int ppl6::CQueue::count
private
void* ppl6::CQueue::first
private
void * ppl6::CQueue::last
private
int ppl6::CQueue::max
private
CMutex ppl6::CQueue::Mutex
private
bool ppl6::CQueue::usemutex
private

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