Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Übungen zu BST (SS 2015)

Synchronisationsobjekt zum Schlafenlegen für eine bestimmte Zeitspanne. Mehr ...

#include <bell.h>

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

Öffentliche Methoden

 Bell ()
 Konstruktor.
void ring ()
 Läuten der Glocke.
void set (int ms)
 Stellen des Weckers.
void sleep ()
 Schlafen, bis der Wecker klingelt.
void sleep (int ms)
 Wecker aufziehen und dann gleich schlafen bis der Wecker klingelt.
void wait (int value)
 Setzen des Zählers.
int wait ()
 Auslesen des Zählers.
void tick ()
 Dekrementieren des Zählers um 1.
bool run_down ()
 Abfragen, ob die Zeit abgelaufen ist.
- Öffentliche Methoden geerbt von Waitingroom
virtual ~Waitingroom ()
 Destruktor.
virtual void remove (Thread *customer)
 Mit dieser Methode kann der angegebene Thread customer vorzeitig aus dem Wartezimmer entfernt werden.
- Öffentliche Methoden geerbt von QueueEntry< Bell >
Bellgetnext ()
 Gibt das nächste Element in der Liste zurück (read-only-Zugriff).

Weitere Geerbte Elemente

- Geschützte 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.
Threaddequeue ()
 Liefert das erste Element der Liste und entfernt es gleichzeitig aus dieser.
Threadremove (Thread *item, bool(*cmp)(Thread *, Thread *)=eqCmp)
 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.
void insert_first (Thread *item)
 Fügt das item am Anfang der Liste ein.
void insert_after (Thread *old_item, Thread *new_item)
 Fügt das Element new_item hinter dem Element old_item in die Liste ein.
Threadfirst ()
 Liefert das erste Element der Liste ohne es zu entfernen.

Ausführliche Beschreibung

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.

Beschreibung der Konstruktoren und Destruktoren

Bell::Bell ( )
inline

Konstruktor.

Der Wecker ist zunächst noch abgeschaltet.

Dokumentation der Elementfunktionen

void Bell::ring ( )

Läuten der Glocke.

Wird von Glöckner aufgerufen, wenn die Wartezeit abgelaufen ist. Weckt ggfs. schlafende Threads.

bool Bell::run_down ( )
inline

Abfragen, ob die Zeit abgelaufen ist.

Rückgabe
Liefert true, falls die Zeit abgelaufen ist, ansonsten false.
void Bell::set ( int  ms)

Stellen des Weckers.

Parameter
msZeit in Millisekunden, auf die der Wecker gestellt werden soll.

Erneute Implementation in Guarded_Bell.

void Bell::wait ( int  value)
inline

Setzen des Zählers.

Parameter
valueNeuer Zählerwert.
int Bell::wait ( )
inline

Auslesen des Zählers.

Rückgabe
Aktueller Zählerwert.

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
  • meeting/bell.h
  • meeting/bell.cc