OOStuBS/MPStuBS
|
Synchronisationsobjekt zum Schlafenlegen für eine bestimmte Zeitspanne. Mehr ...
#include <bell.h>
Öffentliche Methoden | |
Bell () | |
Konstruktor. Mehr ... | |
void | ring () |
Läuten der Glocke. Mehr ... | |
Öffentliche Methoden geerbt von Waitingroom | |
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 ... | |
Thread * | dequeue () |
Liefert das erste Element der Liste und entfernt es gleichzeitig aus dieser. Mehr ... | |
Iterator | begin () |
Iterator | end () |
Thread * | remove (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 ... | |
Thread * | first () |
Liefert das erste Element der Liste, ohne es zu entfernen. Mehr ... | |
Thread * | next (Thread *o) |
Liefert das nächste Element der Liste für ein gegebenes Element. | |
Öffentliche, statische Methoden | |
static void | sleep (unsigned int ms) |
Temporäres Bell-Objekt erzeugen und Thread schlafen legen, bis der Wecker klingelt. Mehr ... | |
Ö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 ... | |
Private Attribute | |
QueueLink< Bell > | bellringer_link |
Verkettungszeiger. Mehr ... | |
unsigned int | counter |
Interner Zähler zur Verwaltung der Bell-Objekte im Bellringer. Mehr ... | |
Freundbeziehungen | |
class | Bellringer |
Synchronisationsobjekt zum Schlafenlegen für eine bestimmte Zeitspanne.
Ein "Wecker" ist ein Synchronisationsobjekt, mit dem ein oder mehrere Threads sich für eine bestimmte Zeit schlafen legen können.
|
inline |
Konstruktor.
Der Wecker ist zunächst noch abgeschaltet.
void Bell::ring | ( | ) |
Läuten der Glocke.
Wird von Bellringer aufgerufen, wenn die Wartezeit abgelaufen ist und weckt den schlafenden Thread.
|
static |
Temporäres Bell-Objekt erzeugen und Thread schlafen legen, bis der Wecker klingelt.
ms | Zeit in Millisekunden, die zur Umrechnung an Bellringer::job() weitergegeben wird. |
Verkettungszeiger.
Mittels dieses Verkettungszeigers kann der Bellringer mehrere Bells verwalten.
|
private |
Interner Zähler zur Verwaltung der Bell-Objekte im Bellringer.