Die Alarmmethoden von SandUhr werden durch Klassen beschrieben, die von SandUhr::AlarmAction abgeleitet sind. Drei solcher Klassen sind vordefiniert und werden direkt von SandUhr implementiert.
Alle Alarmmethoden verwenden die folgenden Attribute und Funktionen.
Popup-Fenster:
readonly attribute boolean NeedsPopup;
Falls dieses Attribut den Wert TRUE hat, wird die Alarmmeldung nicht nur durch Aufruf der Deliver()-Funktion zugestellt, sondern SandUhr öffnet zusätzlich noch ein Popup-Fenster.
Anschließen von Alarmmechanismen:
void Attach (in Timer T);
Diese Methode wird von dem Timer-Objekt aufgerufen, bevor es auf das AlarmAction-Objekt auf irgendeine andere Weise zugreift. Die Funktion kann z.B. verwendet werden, um ein "reference counting" zu implementieren.
Abtrennen von Alarmmechanismen:
void Detach (in Timer T);
Diese Methode wird von dem Timer-Objekt aufgerufen, wenn es an dem AlarmAction-Objekt nicht länger interessiert ist. Die Funktion kann z.B. verwendet werden, um ein "reference counting" zu implementieren.
Zustellung des Alarms:
void Deliver (in string TimeSpec, in string Message) raises (DeliveryFailed);
Diese Methode wird von dem Timer-Objekt aufgerufen, wenn die Uhr abgelaufen ist. Sie ist dafür verantwortlich, dem Benutzer die Meldung zuzustellen. Falls das misslingt, muss die Deliver-Funktionen eine DeliveryFailed-Ausnahme auslösen. Das Argument TimeSpec enthält eine normalisierte Form der Alarmzeit, nicht die ursprüngliche Beschreibung des Benutzers.
SandUhr selbst implentiert drei spezielle Subklassen von AlarmAction:
Tastaturpieps:
interface AlarmBeep: AlarmAction { attribute unsigned short Count; };
Piepse mehrfach. Count ist die Anzahl der Piepstöne. Der Wert wird während der Zustellung der Alarms heruntergezählt, bis er Null erreicht.
Abspielen einer Sounddatei:
interface AlarmSound: AlarmAction { attribute string SoundFile; };
Spiele eine Sounddatei mittels des „enlightened sound daemon“ esd ab. Der Dateiname SoundFile bezeichnet eine Datei auf dem Rechner, auf dem das AlarmSound-Objekt lebt.
Ausführen eines Programms:
interface AlarmCommand: AlarmAction { attribute string CommandString; };
Führe ein beliebiges Shell-Kommando aus. Das Kommando CommandString wird mittels der Funktion gnome_execute_shell() auf dem Rechner ausgeführt, auf dem das AlarmCommand-Objekt lebt.
Zurück | Zum Anfang | Nach vorne |
SandUhr::Timer | Nach oben | SandUhr::TimerFactory |