OOStuBS/MPStuBS
Bellringer Klassenreferenz

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

#include <bellringer.h>

Zusammengehörigkeiten von Bellringer:

Ö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 Milisekunden nach denen geläutet wird. Mehr ...
 
void cancel (Bell *bell)
 Die Glocke bell soll nun doch nicht geläutet werden. Mehr ...
 
bool bell_pending ()
 Ist eine Glocke eingehangen? Mehr ...
 

Private Attribute

Queue< Bell, &Bell::bellringer_linkbells
 Die Liste der Glocken die gerade verwaltet wird. 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::Bellringer ( )
inline

Konstruktor.

Dokumentation der Elementfunktionen

◆ bell_pending()

bool Bellringer::bell_pending ( )

Ist eine Glocke eingehangen?

Rückgabe
Mindestens eine Glocke ist eingehangen.

◆ cancel()

void Bellringer::cancel ( Bell bell)

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

Parameter
bellDie Glocke, die nicht geläutet werden soll.

◆ check()

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.

◆ job()

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

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

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

Dokumentation der Datenelemente

◆ bells

Queue<Bell, &Bell::bellringer_link> Bellringer::bells
private

Die Liste der Glocken die gerade verwaltet wird.

In dieser Liste sind die Glocken, die von job() eingetragen wurden und noch nicht abgelaufen sind. Sie werden bei jedem check() überprüft.

Als Verkettungszeiger wird das Bell::bellringer_link Feld verwendet.


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