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

Verwaltung und Anstoßen von zeitgesteuerten Aktivitäten. Mehr ...

#include <bellringer.h>

Öffentliche Methoden

 Bellringer ()
 Konstruktor. Mehr ...
 
void check ()
 Prüft, ob Glocken zu läuten sind und tut es gegebenenfalls. Mehr ...
 
void job (Bell *bell, unsigned int ms)
 Die Glocke bell wird dem Glöckner überantwortet. Sie soll nach ms Millisekunden geläutet werden. Mehr ...
 
void cancel (Bell *bell)
 Die Glocke bell soll nun doch nicht geläutet werden. Mehr ...
 
bool bell_pending ()
 Ist eine Glocke eingehangen? Mehr ...
 

Ausführliche Beschreibung

Verwaltung und Anstoßen von zeitgesteuerten Aktivitäten.

Der "Glöckner" (Bellringer) wird regelmäßig aktiviert und prüft, ob irgendwelche "Glocken" (Bell-Objekte) läuten müssen. Die Glocken befinden sich in einer Liste, die der Glöckner verwaltet. Eine geschickte Implementierung vermeidet, bei jeder Aktivierung die gesamte Liste zu durchlaufen.

Auf diese Weise erreicht man eine Komplexität vom O(1) im Timer Interrupt, sofern keine Glocke aktiviert werden muss.

Beschreibung der Konstruktoren und Destruktoren

Bellringer::Bellringer ( )
inline

Konstruktor.

Dokumentation der Elementfunktionen

bool Bellringer::bell_pending ( )

Ist eine Glocke eingehangen?

Rückgabe
Mindestens eine Glocke ist eingehangen.
void Bellringer::cancel ( Bell bell)

Die Glocke bell soll nun doch nicht geläutet werden.

Parameter
bellDie Glocke, die nicht geläutet werden soll.
void Bellringer::check ( )

Prüft, ob Glocken zu läuten sind und tut es gegebenenfalls.

Bei jedem Aufruf von check vergeht ein Tick. Wenn das Ticken einer Glocke dazu führt, dass sie ihre Zeit abgelaufen ist, wird sie geläutet.

void Bellringer::job ( Bell bell,
unsigned int  ms 
)

Die Glocke bell wird dem Glöckner überantwortet. Sie soll nach ms Millisekunden geläutet werden.

Parameter
bellGlocke, die nach ms Millisekunden geläutet werden soll.
msMilisekunden, die abgewartet werden sollen, bevor die Glocke bell geläutet wird.

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