Manages and activates time-triggered activities.
More...
#include <sync/bellringer.h>
|
static void | check () |
| Checks whether there are bells to be rung. More...
|
|
static void | job (Bell *bell, unsigned int ms) |
| Passes a bell to the bellringer to be rung after ms milliseconds. More...
|
|
static void | cancel (Bell *bell) |
| Cancel ticking & ringing a bell. More...
|
|
static unsigned int | residual (Bell *bell) |
| Returns the remaining time until bell will ring. More...
|
|
static bool | bellPending () |
| Checks whether there are enqueued bells. More...
|
|
Manages and activates time-triggered activities.
The Bellringer is regularly activated and checks whether any of the bells should ring. The bells are stored in a Queue<Bell> that is managed by the Bellringer. A clever implementation avoids iterating through the whole list for every iteration by keeping the bells sorted and storing delta times. This approach leads to a complexity of O(1) for the method called by the timer interrupt in case no bells need to be rung.
◆ check()
void Bellringer::check |
( |
| ) |
|
|
static |
Checks whether there are bells to be rung.
Every call to check elapses a tick. Once such a tick reduces a bells remaining time to zero, the bell will be rung.
◆ job()
void Bellringer::job |
( |
Bell * |
bell, |
|
|
unsigned int |
ms |
|
) |
| |
|
static |
Passes a bell
to the bellringer to be rung after ms
milliseconds.
- Parameters
-
bell | Bell that should be rung after ms milliseconds |
ms | number of milliseconds that should be waited before ringing the bell |
◆ cancel()
void Bellringer::cancel |
( |
Bell * |
bell | ) |
|
|
static |
Cancel ticking & ringing a bell.
- Parameters
-
bell | Bell that should not be rung. |
◆ residual()
unsigned int Bellringer::residual |
( |
Bell * |
bell | ) |
|
|
static |
Returns the remaining time until bell
will ring.
- Parameters
-
bell | The bell for which the remaining time should be returned |
- Returns
- Remaining time in milliseconds
- Optional:
- Implement Method
◆ bellPending()
bool Bellringer::bellPending |
( |
| ) |
|
|
static |
Checks whether there are enqueued bells.
- Returns
- true if there are enqueued bells, false otherwise
The documentation for this class was generated from the following files: