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

Schnittstelle von Anwendungsthreads zu Bell-Objekten. Mehr ...

#include <syscall/guarded_bell.h>

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

Öffentliche Methoden

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 Bell
 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)
 Schlafen, bis der Wecker klingelt. Mehr ...
 
- Öffentliche, statische Methoden geerbt von Bell
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 ...
 

Ausführliche Beschreibung

Schnittstelle von Anwendungsthreads zu Bell-Objekten.

Die Klasse Guarded_Bell implementiert die Systemaufrufschnittstelle zur Bell Klasse. Die von Guarded_Bell angebotenen Methoden werden direkt auf die Methoden der Basisklasse abgebildet, nur dass ihre Ausführung jeweils mit Hilfe eines Objekts der Klasse Secure geschützt wird.

Dokumentation der Elementfunktionen

◆ residual()

unsigned int Guarded_Bell::residual ( )
inline

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
Zu beachten
Diese Methode entspricht der gleichnamigen Methode der Basisklasse Bell, nur dass sie mit Hilfe eines Secure Objekts geschützt wird.
Optional:
Methode implementieren

◆ set()

void Guarded_Bell::set ( unsigned int  ms)
inline

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
Zu beachten
Diese Methode entspricht der gleichnamigen Methode der Basisklasse Bell, nur dass sie mit Hilfe eines Secure Objekts geschützt wird.
Optional:
Methode implementieren

◆ sleep() [1/2]

static void Guarded_Bell::sleep ( unsigned int  ms)
inlinestatic

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
Zu beachten
Diese Methode entspricht der gleichnamigen Methode der Basisklasse Bell, nur dass sie mit Hilfe eines Secure Objekts geschützt wird.
Noch zu erledigen:
Methode implementieren

◆ sleep() [2/2]

void Guarded_Bell::sleep ( )
inline

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
Zu beachten
Diese Methode entspricht der gleichnamigen Methode der Basisklasse Bell, nur dass sie mit Hilfe eines Secure Objekts geschützt wird.
Optional:
Methode implementieren

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