<refentry id="factoryref">
  <refmeta>
    <refentrytitle>SandUhr::TimerFactory</refentrytitle>
    <manvolnum>3</manvolnum>
    <refmiscinfo>SandUhr CORBA-Schnittstelle</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>SandUhr::TimerFactory</refname>
    <refpurpose>CORBA-Schnittstelle für SandUhr-Factory-Objekte</refpurpose>
  </refnamediv>

  <refsynopsisdiv><title>ÜBERSICHT</title>
    <synopsis>
module SandUhr {
  interface TimerFactory {
    exception InvalidTime { };

    AlarmBeep CreateAlarmBeep (in unsigned short Count);
    AlarmSound CreateAlarmSound (in string SoundFile);
    AlarmCommand CreateAlarmCommand (in string CommandString);

    Timer CreateTimer (in string TimeSpec, in string Message)
                                                raises (InvalidTime);

    typedef sequence&lt;Timer&gt; TimerVec;
    readonly attribute TimerVec Timers;

    void ShowControl (in boolean Show);
  };
};
    </synopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>BESCHREIBUNG</title>

    <para>
      Dazu, Alarm- und Timerobjekte zu erzeugen, dient die
      <classname>TimerFactory</classname> Schnittstelle.  Sie ist von
      der Klasse <classname>GNOME::ObjectFactory</classname>
      abgeleitet.  Objekte der
      <classname>TimerFactory</classname>-Klasse repräsentieren das
      Kontrollfenster und alle Resourcen, die damit verbunden sind.
      <classname>TimerFactory</classname>-Objekte werden mittels des
      <quote lang="en">GNOME object activation framework</quote> OAF
      registriert.
    </para>

    <itemizedlist>
      <listitem>
        <para>Erzeugung von Alarmmethoden:</para>
        <synopsis>
AlarmBeep CreateAlarmBeep (in unsigned short Count);
AlarmSound CreateAlarmSound (in string SoundFile);
AlarmCommand CreateAlarmCommand (in string CommandString);
        </synopsis>
        
        <para>
          Erzeuge <classname>AlarmAction</classname>-Objekte.  Diese
          können dann dem <literal>Alarm</literal>-Attribut eines
          Timers zugewiesen werden.
        </para>
      </listitem>

      <listitem>
        <para>Erzeugung von Uhren:</para>
        <synopsis>
Timer CreateTimer (in string TimeSpec, in string Message)
                                                raises (InvalidTime);
        </synopsis>

        <para>
          Erzeuge ein neues Timer-Objekt mit Alarmzeit
          <literal>TimeSpec</literal> und Alarmmeldung
          <literal>Message</literal>.  Das Format der Alarmzeit wird
          im Handbuch im Anschnitt <link linkend="timespec">Die
          Alarmzeit</link> erklärt.  Falls <literal>TimeSpec</literal>
          der leere String ist, öffne ein Fenster um den Benutzer nach
          einer Alarmzeit zu fragen.  Falls
          <literal>TimeSpec</literal> keine gültig Alarmzeit ist, wird
          eine <literal>InvalidTime</literal>-Ausnahme ausgelöst.
        </para>
      </listitem>

      <listitem>
        <para>Zugriff auf bestehende Timer:</para>
        <synopsis>
typedef sequence&lt;Timer&gt; TimerVec;
readonly attribute TimerVec Timers;
        </synopsis>

        <para>
	  <literal>Timers</literal> ist die Liste aller Timer, die
	  von dem Factory-Objekt kontrolliert werden.
        </para>
      </listitem>

      <listitem>
        <para>Anzeige des Kontrollfensters:</para>
        <synopsis>
void ShowControl (in boolean Show);
        </synopsis>

        <para>
	  Zeige oder verstecke das Kontrollfenster.
        </para>
      </listitem>

    </itemizedlist>
  </refsect1>

  <refsect1>
    <title>SIEHE AUCH</title>

    <para>
      <xref linkend="timerref">, 
      <xref linkend="alarmref">
    </para>
  </refsect1>

</refentry>
