<?xml version='1.0' encoding='ISO-8859-1' standalone='no'?>
<!DOCTYPE interface-description SYSTEM 'file:///usr/pkgsrc/lang/oo2c/work.macaroon/oo2c_32-2.0.11/rsrc/OOC/xml/interface-description.dtd'>
<interface-description name='SysClock' id=''>
  <const-decl name='maxSecondParts' id='maxSecondParts' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Most systems have just millisecond accuracy.</summary>
      <p pad-after='yes' no-indent='yes'>Most systems have just millisecond accuracy.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='zoneMin' id='zoneMin' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Time zone minimum minutes.</summary>
      <p pad-after='yes' no-indent='yes'>Time zone minimum minutes.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='zoneMax' id='zoneMax' export='yes' value='unknown'>
    <oberon-doc>
      <summary>time zone maximum minutes.</summary>
      <p pad-after='yes' no-indent='yes'>time zone maximum minutes.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='localTime' id='localTime' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Time zone is inactive and time is local.</summary>
      <p pad-after='yes' no-indent='yes'>Time zone is inactive and time is local.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='unknownZone' id='unknownZone' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Time zone is unknown.</summary>
      <p pad-after='yes' no-indent='yes'>Time zone is unknown.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='unknown' id='unknown' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Current daylight savings status is unknown.</summary>
      <p pad-after='yes' no-indent='yes'>Current daylight savings status is unknown.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='inactive' id='inactive' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Daylight savings adjustments are not in effect.</summary>
      <p pad-after='yes' no-indent='yes'>Daylight savings adjustments are not in effect.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='active' id='active' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Daylight savings adjustments are being used.</summary>
      <p pad-after='yes' no-indent='yes'>Daylight savings adjustments are being used.</p>
    </oberon-doc>
  </const-decl>
  <type-decl name='DateTime' id='DateTime' export='yes'>
    <type>
      <record>
        <field-decl name='year' id='DateTime.year' export='yes'>
          <oberon-doc>
            <summary><oberon-field href='#DateTime.year'>year</oberon-field> &gt; 0</summary>
            <p pad-after='yes' no-indent='yes'><oberon-field href='#DateTime.year'>year</oberon-field> &gt; 0</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='INTEGER'/>
          </type>
        </field-decl>
        <field-decl name='month' id='DateTime.month' export='yes'>
          <oberon-doc>
            <summary><oberon-field href='#DateTime.month'>month</oberon-field> = 1 ..</summary>
            <p pad-after='yes' no-indent='yes'><oberon-field href='#DateTime.month'>month</oberon-field> = 1 .. 12</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='SHORTINT'/>
          </type>
        </field-decl>
        <field-decl name='day' id='DateTime.day' export='yes'>
          <oberon-doc>
            <summary><oberon-field href='#DateTime.day'>day</oberon-field> = 1 ..</summary>
            <p pad-after='yes' no-indent='yes'><oberon-field href='#DateTime.day'>day</oberon-field> = 1 .. 31</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='SHORTINT'/>
          </type>
        </field-decl>
        <field-decl name='hour' id='DateTime.hour' export='yes'>
          <oberon-doc>
            <summary><oberon-field href='#DateTime.hour'>hour</oberon-field> = 0 ..</summary>
            <p pad-after='yes' no-indent='yes'><oberon-field href='#DateTime.hour'>hour</oberon-field> = 0 .. 23</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='SHORTINT'/>
          </type>
        </field-decl>
        <field-decl name='minute' id='DateTime.minute' export='yes'>
          <oberon-doc>
            <summary><oberon-field href='#DateTime.minute'>minute</oberon-field> = 0 ..</summary>
            <p pad-after='yes' no-indent='yes'><oberon-field href='#DateTime.minute'>minute</oberon-field> = 0 .. 59</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='SHORTINT'/>
          </type>
        </field-decl>
        <field-decl name='second' id='DateTime.second' export='yes'>
          <oberon-doc>
            <summary><oberon-field href='#DateTime.second'>second</oberon-field> = 0 ..</summary>
            <p pad-after='yes' no-indent='yes'><oberon-field href='#DateTime.second'>second</oberon-field> = 0 .. 59</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='SHORTINT'/>
          </type>
        </field-decl>
        <field-decl name='summerTimeFlag' id='DateTime.summerTimeFlag' export='yes'>
          <oberon-doc>
            <summary>Daylight savings mode.</summary>
            <p pad-after='yes' no-indent='yes'>Daylight savings mode.  One of <oberon-const href='#inactive'>inactive</oberon-const>, <oberon-const href='#active'>active</oberon-const>, or <oberon-const href='#unknown'>unknown</oberon-const>.</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='SHORTINT'/>
          </type>
        </field-decl>
        <field-decl name='fractions' id='DateTime.fractions' export='yes'>
          <oberon-doc>
            <summary>Parts of a second in milliseconds.</summary>
            <p pad-after='yes' no-indent='yes'>Parts of a second in milliseconds.  <oberon-field href='#DateTime.fractions'>fractions</oberon-field> = 1 .. maxSecondParts</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='INTEGER'/>
          </type>
        </field-decl>
        <field-decl name='zone' id='DateTime.zone' export='yes'>
          <oberon-doc>
            <summary>Time zone differential factor which is the number of minutes to add to local time to obtain UTC or is set to <oberon-const href='#localTime'>localTime</oberon-const> when time zones are inactive.</summary>
            <p pad-after='yes' no-indent='yes'>Time zone differential factor which is the number of minutes to add to local time to obtain UTC or is set to <oberon-const href='#localTime'>localTime</oberon-const> when time zones are inactive.  <oberon-field href='#DateTime.zone'>zone</oberon-field> = -780 .. 720</p>
          </oberon-doc>
          <type>
            <type-name module='#predef' name='INTEGER'/>
          </type>
        </field-decl>
      </record>
    </type>
  </type-decl>
  <procedure name='CanGetClock' id='CanGetClock' export='yes'>
    <oberon-doc>
      <summary>Returns <code>TRUE</code> if a system clock can be read; <code>FALSE</code> otherwise.</summary>
      <p pad-after='yes' no-indent='yes'>Returns <code>TRUE</code> if a system clock can be read; <code>FALSE</code> otherwise.</p>
    </oberon-doc>
    <formal-parameters>
      <result-type>
        <type-name module='#predef' name='BOOLEAN'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <procedure name='CanSetClock' id='CanSetClock' export='yes'>
    <oberon-doc>
      <summary>Returns <code>TRUE</code> if a system clock can be set; <code>FALSE</code> otherwise.</summary>
      <p pad-after='yes' no-indent='yes'>Returns <code>TRUE</code> if a system clock can be set; <code>FALSE</code> otherwise.</p>
    </oberon-doc>
    <formal-parameters>
      <result-type>
        <type-name module='#predef' name='BOOLEAN'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <procedure name='IsValidDateTime' id='IsValidDateTime' export='yes'>
    <oberon-doc>
      <summary>Returns <code>TRUE</code> if the value of <oberon-param href='#IsValidDateTime.d'>d</oberon-param> represents a valid date and time; <code>FALSE</code> otherwise.</summary>
      <p pad-after='yes' no-indent='yes'>Returns <code>TRUE</code> if the value of <oberon-param href='#IsValidDateTime.d'>d</oberon-param> represents a valid date and time; <code>FALSE</code> otherwise.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='d' id='IsValidDateTime.d' export='no' variable-parameter='no'>
        <type>
          <type-name name='DateTime' href='#DateTime'/>
        </type>
      </parameter-decl>
      <result-type>
        <type-name module='#predef' name='BOOLEAN'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <procedure name='GetClock' id='GetClock' export='yes'>
    <oberon-doc>
      <summary>If possible, assigns system date and time of day to <oberon-param href='#GetClock.userData'>userData</oberon-param>.</summary>
      <p pad-after='yes' no-indent='yes'>If possible, assigns system date and time of day to <oberon-param href='#GetClock.userData'>userData</oberon-param>.  That is, the local time is returned.  Error returns <samp>1 Jan 1970</samp>.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='userData' id='GetClock.userData' export='no' variable-parameter='yes'>
        <type>
          <type-name name='DateTime' href='#DateTime'/>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='SetClock' id='SetClock' export='yes'>
    <oberon-doc>
      <summary>If possible, sets the system clock to the values of <oberon-param href='#SetClock.userData'>userData</oberon-param>.</summary>
      <p pad-after='yes' no-indent='yes'>If possible, sets the system clock to the values of <oberon-param href='#SetClock.userData'>userData</oberon-param>.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='userData' id='SetClock.userData' export='no' variable-parameter='no'>
        <type>
          <type-name name='DateTime' href='#DateTime'/>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='MakeLocalTime' id='MakeLocalTime' export='yes'>
    <oberon-doc>
      <summary>Fill in the daylight savings mode and time zone for calendar date <oberon-param href='#MakeLocalTime.c'>c</oberon-param>.</summary>
      <p pad-after='yes' no-indent='yes'>Fill in the daylight savings mode and time zone for calendar date <oberon-param href='#MakeLocalTime.c'>c</oberon-param>.  The fields <oberon-field href='#DateTime.zone'>c.zone</oberon-field> and <oberon-field href='#DateTime.summerTimeFlag'>c.summerTimeFlag</oberon-field> given in <oberon-param href='#MakeLocalTime.c'>c</oberon-param> are ignored, assuming that the rest of the record describes a local time.</p>
      <p pad-after='yes' no-indent='no'>Note 1: On most Unix systems the time zone information is only available for dates falling within approximately <samp>1 Jan 1902</samp> to <samp>31 Dec 2037</samp>.  Outside this range the field <oberon-field href='#DateTime.zone'>c.zone</oberon-field> will be set to the unspecified <oberon-const href='#localTime'>localTime</oberon-const> value, and <oberon-field href='#DateTime.summerTimeFlag'>c.summerTimeFlag</oberon-field> will be set to <oberon-const href='#unknown'>unknown</oberon-const>.</p>
      <p pad-after='yes' no-indent='no'>Note 2: The time zone information might not be fully accurate for past (and future) years that apply different DST rules than the current year.  Usually the current set of rules is used for <emph>all</emph> years between 1902 and 2037.</p>
      <p pad-after='yes' no-indent='no'>Note 3: With DST there is one hour in the year that happens twice: the hour after which the clock is turned back for a full hour.  It is undefined which time zone will be selected for dates refering to this hour, that is, whether DST or normal time zone will be chosen.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='c' id='MakeLocalTime.c' export='no' variable-parameter='yes'>
        <type>
          <type-name name='DateTime' href='#DateTime'/>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='GetTimeOfDay' id='GetTimeOfDay' export='yes'>
    <oberon-doc>
      <summary>PRIVAT.</summary>
      <p pad-after='yes' no-indent='yes'>PRIVAT.  Don't use this.  Take Time.GetTime instead.  Equivalent to the C function `gettimeofday'.  The return value is `0' on success and `-1' on failure; in the latter case `sec' and `usec' are set to zero.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='sec' id='GetTimeOfDay.sec' export='no' variable-parameter='yes'>
        <type>
          <type-name module='#predef' name='LONGINT'/>
        </type>
      </parameter-decl>
      <parameter-decl name='usec' id='GetTimeOfDay.usec' export='no' variable-parameter='yes'>
        <type>
          <type-name module='#predef' name='LONGINT'/>
        </type>
      </parameter-decl>
      <result-type>
        <type-name module='#predef' name='LONGINT'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <import-decl name='-RT0' id='-RT0' export='no' module='RT0'/>
  <import-decl name='-Object' id='-Object' export='no' module='Object'/>
  <import-decl name='-Exception' id='-Exception' export='no' module='Exception'/>
</interface-description>
