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

Übungen zu BS - Aufgaben (WS 2013/14)

Bellringer Klassenreferenz

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

#include <bellringer.h>

Klassendiagramm für Bellringer:
Zusammengehörigkeiten von Bellringer:

Öffentliche Methoden

 Bellringer ()
 Konstruktor.
void check ()
 Prüft, ob Glocken zu läuten sind und tut es gegebenenfalls.
void job (Bell *bell, int ticks)
 Die Glocke bell wird dem Glöckner überantwortet. Sie soll nach ticks Zeiteinheiten geläutet werden.
void cancel (Bell *bell)
 Die Glocke bell soll nun doch nicht geläutet werden.
void ring_the_bells ()
 Läuten aller Glocken, deren Timer abgelaufen ist.

Weitere Geerbte Elemente

- Private Methoden geerbt von Queue< Bell >
 Queue ()
 Der Konstruktor initialisiert die Liste als leere Liste.
void enqueue (Bell *item)
 Das Listenelement item wird an das Ende der Liste angefügt.
Belldequeue ()
 Liefert das erste Element der Liste und entfernt es gleichzeitig aus dieser.
bool remove (Bell *item)
 Mit dieser Methode kann das angegebene Element item aus der Liste entfernt werden, unabhängig von seiner Position dort.
void insert_first (Bell *item)
 Fügt das item am Anfang der Liste ein.
void insert_after (Bell *old_item, Bell *new_item)
 Fügt das Element new_item hinter dem Element old_item in die Liste ein.
Bellfirst ()
 Liefert das erste Element der Liste ohne es zu entfernen.

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.

Dokumentation der Elementfunktionen

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,
int  ticks 
)

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

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

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