4. Steuerung mittels CORBA

SandUhr besitzt eine umfangreiche CORBA-Schnittstelle. Damit kann man auch in eigenen Skripten und Programmen neue Uhren erzeugen oder auf bestehende Uhren zugreifen. Die Schnittstelle erlaubt es sogar, eigene Alarmmechanismen an das Programm anzuschließen. Unten findet sich als Beispiel eine Methode, um die Alarmmeldung per Email zuzustellen.

4.1. CORBA-Einführung

CORBA ist ein komplexes Gefüge, das dazu dient unterschiedliche Programmteile auch dann miteinander verbinden zu können, wenn sie möglicherweise in unterschiedlichen Programmiersprachen geschrieben sind, oder auf unterschiedlichen Rechnern eines Netzwerkes laufen. Die volle Dosis an Schlagworten findet sich auf der offiziellen CORBA-Webseite unter www.corba.org.

CORBA ist objektorientiert. Ein CORBA-Server implementiert Objekte und Kunden können (vom Server vorgegebene) Anforderungen an den Server senden, um bestimme Aufgaben zu erledigen. SandUhr implementiert zwei Klassen von CORBA-Objekten:

Die CORBA-Unterstützung von SandUhr ist mittels ORBit realisiert. Dies ist der Standard-CORBA-ORB des GNOME-Projekts. Informationen über ORBit gibt es auf der , ./usr/share/gnome/help/sanduhr/de/alarmref.html0100644000000000000000000001534307455654550020422 0ustar rootroot SandUhr::AlarmAction

SandUhr::AlarmAction

Name

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

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.

./usr/share/gnome/help/sanduhr/de/authors.html0100644000000000000000000000520607455654550020313 0ustar rootroot Autor