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: