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

Synchronisationsobjekt zum Schlafenlegen fĂŒr eine bestimmte Zeitspanne. Mehr ...

#include <meeting/bell.h>

Klassendiagramm fĂŒr Bell:
Zusammengehörigkeiten von Bell:

Öffentliche Methoden

 Bell ()
 Konstruktor. Mehr ...
 
void ring ()
 LĂ€uten der Glocke. Mehr ...
 
unsigned int residual ()
 Abfragen der verbleibenden Zeit bis die Glocke gelĂ€utet wird. Mehr ...
 
void set (unsigned int ms)
 Stellen des Weckers. Mehr ...
 
void sleep ()
 Schlafen, bis der Wecker klingelt. 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 ...
 
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.
 

Ö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 ...
 

Freundbeziehungen

class Bellringer
 

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::Bell ( )
inline

Konstruktor.

Der Wecker ist zunÀchst noch abgeschaltet.

Noch zu erledigen:
Konstruktor implementieren

Dokumentation der Elementfunktionen

◆ residual()

unsigned int Bell::residual ( )

Abfragen der verbleibenden Zeit bis die Glocke gelÀutet wird.

Unter Verwendung der Methode Bellringer::residual()

RĂŒckgabe
Zeit in ms bis die Glocke gelÀutet wird
Optional:
Methode implementieren

◆ ring()

void Bell::ring ( )

LĂ€uten der Glocke.

Wird von Bellringer aufgerufen, wenn die Wartezeit abgelaufen ist und weckt den schlafenden Thread.

Noch zu erledigen:
Methode implementieren

◆ set()

void Bell::set ( unsigned int  ms)

Stellen des Weckers.

Mit dieser Methode kann der Wecker auf die gewĂŒnschte Wartezeit gestellt werden.

Parameter
msZeit in Millisekunden, die zur Umrechnung an Bellringer::job() weitergegeben wird.
Optional:
Methode implementieren

◆ sleep() [1/2]

void Bell::sleep ( )

Schlafen, bis der Wecker klingelt.

Der Wecker muss zuvor mittels Bell::set() konfiguriert worden sein, und sollte noch nicht geklÀutet worden sein (siehe Bell::residual() )

Optional:
Methode implementieren

◆ sleep() [2/2]

void Bell::sleep ( unsigned int  ms)
static

TemporÀres Bell-Objekt erzeugen und Thread schlafen legen, bis der Wecker klingelt.

Parameter
msZeit in Millisekunden
Noch zu erledigen:
Methode implementieren

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