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 ... | |
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.
|
inline |
Konstruktor.
bool Bellringer::bell_pending | ( | ) |
Ist eine Glocke eingehangen?
void Bellringer::cancel | ( | Bell * | bell | ) |
Die Glocke bell soll nun doch nicht gelÀutet werden.
bell | Die 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.
bell | Glocke, die nach ms Millisekunden gelÀutet werden soll. |
ms | Milisekunden, die abgewartet werden sollen, bevor die Glocke bell gelÀutet wird. |