Zurück |  | Nach vorne

# SandUhr::AlarmAction

## Name

SandUhr::AlarmAction, SandUhr::AlarmBeep, SandUhr::AlarmSound, SandUhr::AlarmCommand -- CORBA-Schnittstelle für die SandUhr-Alarmmethoden

## ÜBERSICHT

    module SandUhr {
      interface AlarmAction {
        exception DeliveryFailed {
          string Reason;
        };

        readonly attribute boolean NeedsPopup;

        void Attach (in Timer T);
        void Detach (in Timer T);
        void Deliver (in string TimeSpec, in string Message)
                                            raises (DeliveryFailed);
        };

      interface AlarmBeep: AlarmAction {
        attribute unsigned short Count;
      };

      interface AlarmSound: AlarmAction {
        attribute string SoundFile;
      };

      interface AlarmCommand: AlarmAction {
        attribute string CommandString;
      };
    };

## BESCHREIBUNG

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.

## SIEHE AUCH

SandUhr::TimerFactory(3), SandUhr::Timer(3)

Zurück | Zum Anfang | Nach vorne
SandUhr::Timer | Nach oben | SandUhr::TimerFactory