OOStuBS/MPStuBS
Waitingroom Klassenreferenz

Liste von Threads, die auf ein Ereignis warten. Mehr ...

#include <waitingroom.h>

Klassendiagramm für Waitingroom:
Zusammengehörigkeiten von Waitingroom:

Öffentliche Methoden

virtual ~Waitingroom ()
 Destruktor. Mehr ...
 
virtual void remove (Thread *customer)
 Mit dieser Methode kann der angegebene Thread customer vorzeitig aus dem Wartezimmer entfernt werden. Mehr ...
 
- Öffentliche Methoden geerbt von Queue< Thread >
 Queue ()
 Der Konstruktor initialisiert die Liste als leere Liste.
 
void enqueue (Thread *item)
 Das Listenelement item wird an das Ende der Liste angefügt. Mehr ...
 
Threaddequeue ()
 Liefert das erste Element der Liste und entfernt es gleichzeitig aus dieser. Mehr ...
 
Iterator begin ()
 
Iterator end ()
 
Threadremove (Thread *item, bool(*cmp)(Thread *, Thread *)=[](Thread *a, Thread *b) {return a==b;})
 Mit dieser Methode kann das angegebene Element item aus der Liste entfernt werden, unabhängig von seiner Position dort. Verglichen werden die Pointer-Adressen, optional kann eine Vergleichsfunktion angegeben werden. Die Standardvergleichsfunktion ist ein C++11 Lambda Ausdruck, der auf Pointer-Gleichheit prüft. Mehr ...
 
void insert_first (Thread *item)
 Fügt das item am Anfang der Liste ein. Mehr ...
 
void insert_after (Thread *old_item, Thread *new_item)
 Fügt das Element new_item hinter dem Element old_item in die Liste ein. Mehr ...
 
Threadfirst ()
 Liefert das erste Element der Liste, ohne es zu entfernen. Mehr ...
 
Threadnext (Thread *o)
 Liefert das nächste Element der Liste für ein gegebenes Element.
 

Weitere Geerbte Elemente

- Öffentliche, statische Methoden geerbt von Queue< Thread >
static QueueLink< Thread > * get_node (Thread *o)
 Gibt einen Zeiger auf das QueueLink-Element innerhalb des Argument-Objektes zurück. Mehr ...
 

Ausführliche Beschreibung

Liste von Threads, die auf ein Ereignis warten.

Die Klasse Waitingroom implementiert eine Liste von Threads, die alle auf ein bestimmtes Ereignis warten.

Zu beachten
Die Methode remove(Thread*) muss virtuell sein, damit der Scheduler einen Thread aus dem Wartezimmer entfernen kann, ohne wissen zu müssen, welcher Art dieses Wartezimmer ist. Sofern es erforderlich ist, kann eine von Waitingroom abgeleitete Klasse die Methode auch noch neu definieren.

Der Destruktor sollte wie bei allen Klassen, die virtuelle Methoden definieren, ebenfalls virtuell sein.

Beschreibung der Konstruktoren und Destruktoren

◆ ~Waitingroom()

Waitingroom::~Waitingroom ( )
virtual

Destruktor.

Der Destruktor entfernt alle noch wartenden Threads von der Liste und weckt sie zudem auf.

Dokumentation der Elementfunktionen

◆ remove()

void Waitingroom::remove ( Thread customer)
virtual

Mit dieser Methode kann der angegebene Thread customer vorzeitig aus dem Wartezimmer entfernt werden.


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