<?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='URI:Scheme:File' id=''>
  <import-decl name='Object' id='Object' export='no' module='Object'/>
  <import-decl name='IO' id='IO' export='no' module='IO'/>
  <import-decl name='URI0' id='URI0' export='no' module='URI'/>
  <import-decl name='Hierarchical' id='Hierarchical' export='no' module='URI:Scheme:Hierarchical'/>
  <import-decl name='ServerBased' id='ServerBased' export='no' module='URI:Authority:ServerBased'/>
  <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'/>
  <class name='URI'>
    <type-decl name='URI' id='URI' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='URIDesc' href='#URIDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='URIDesc' id='URIDesc' export='no'>
      <type>
        <record/>
      </type>
    </type-decl>
    <procedure name='Init' id='Init' export='yes'>
      <formal-parameters>
        <parameter-decl name='file' id='Init.file' export='no' variable-parameter='no'>
          <type>
            <type-name name='URI' href='#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='schemeId' id='Init.schemeId' export='no' variable-parameter='no'>
          <type>
            <type-name name='STRING' href='#STRING'/>
          </type>
        </parameter-decl>
        <parameter-decl name='authority' id='Init.authority' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI0' name='Authority' href='URI#Authority'/>
          </type>
        </parameter-decl>
        <parameter-decl name='query' id='Init.query' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI0' name='Query' href='URI#Query'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='New' id='New' export='yes'>
      <formal-parameters>
        <parameter-decl name='schemeId' id='New.schemeId' export='no' variable-parameter='no'>
          <type>
            <type-name name='STRING' href='#STRING'/>
          </type>
        </parameter-decl>
        <parameter-decl name='authority' id='New.authority' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI0' name='Authority' href='URI#Authority'/>
          </type>
        </parameter-decl>
        <parameter-decl name='query' id='New.query' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI0' name='Query' href='URI#Query'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='URI' href='#URI'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <procedure name='NewAuthority' id='URIDesc.NewAuthority' export='yes'>
      <doc-inherited-from module='URI' name='NewAuthority' class='HierarchicalURI' href='URI#HierarchicalURIDesc.NewAuthority'/>
      <oberon-doc>
        <summary>Creates a new instance of the authority component of URI <oberon-param href='#URIDesc.NewAuthority.file'>file</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Creates a new instance of the authority component of URI <oberon-param href='#URIDesc.NewAuthority.file'>file</oberon-param>.  The new object is subsequently filled in by parsing the authority component of the URI string (see <oberon-proc href='URI:Authority#ParseAuthority'>URI:Authority.ParseAuthority</oberon-proc>).</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='file' id='URIDesc.NewAuthority.file' export='no' variable-parameter='no'>
          <type>
            <type-name name='URI' href='#URI'/>
          </type>
        </receiver-decl>
        <result-type>
          <type-name module='URI0' name='Authority' href='URI#Authority'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='URI:Scheme:Hierarchical' name='NewAuthority' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.NewAuthority'/>
      <redefined-method module='URI' name='NewAuthority' class='HierarchicalURI' href='URI#HierarchicalURIDesc.NewAuthority'/>
    </procedure>
    <procedure name='AuthorityMandatory' id='URIDesc.AuthorityMandatory' export='yes'>
      <doc-inherited-from module='URI' name='AuthorityMandatory' class='HierarchicalURI' href='URI#HierarchicalURIDesc.AuthorityMandatory'/>
      <oberon-doc>
        <summary>If <code>TRUE</code> and the URI has a scheme component, then require that an authority is present when parsing the URI, and include an empty authority part when converting the URI to a string, if no authority is defined.</summary>
        <p pad-after='yes' no-indent='yes'>If <code>TRUE</code> and the URI has a scheme component, then require that an authority is present when parsing the URI, and include an empty authority part when converting the URI to a string, if no authority is defined.</p>
        <p pad-after='yes' no-indent='no'>By default, this method returns <code>FALSE</code>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='file' id='URIDesc.AuthorityMandatory.file' export='no' variable-parameter='no'>
          <type>
            <type-name name='URI' href='#URI'/>
          </type>
        </receiver-decl>
        <result-type>
          <type-name module='#predef' name='BOOLEAN'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='URI' name='AuthorityMandatory' class='HierarchicalURI' href='URI#HierarchicalURIDesc.AuthorityMandatory'/>
      <redefined-method module='URI' name='AuthorityMandatory' class='HierarchicalURI' href='URI#HierarchicalURIDesc.AuthorityMandatory'/>
    </procedure>
    <procedure name='NewQuery' id='URIDesc.NewQuery' export='yes'>
      <doc-inherited-from module='URI' name='NewQuery' class='HierarchicalURI' href='URI#HierarchicalURIDesc.NewQuery'/>
      <oberon-doc>
        <summary>Creates a new instance of the query component of URI <oberon-param href='#URIDesc.NewQuery.file'>file</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Creates a new instance of the query component of URI <oberon-param href='#URIDesc.NewQuery.file'>file</oberon-param>.  The new object is subsequently filled in by parsing the query component of the URI string (see <oberon-proc href='URI:Query#ParseQuery'>URI:Query.ParseQuery</oberon-proc>).</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='file' id='URIDesc.NewQuery.file' export='no' variable-parameter='no'>
          <type>
            <type-name name='URI' href='#URI'/>
          </type>
        </receiver-decl>
        <result-type>
          <type-name module='URI0' name='Query' href='URI#Query'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='URI:Scheme:Hierarchical' name='NewQuery' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.NewQuery'/>
      <redefined-method module='URI' name='NewQuery' class='HierarchicalURI' href='URI#HierarchicalURIDesc.NewQuery'/>
    </procedure>
    <procedure name='Clone' id='URIDesc.Clone' export='yes'>
      <doc-inherited-from module='URI' name='Clone' class='URI' href='URI#URIDesc.Clone'/>
      <oberon-doc>
        <summary>Creates a deep copy of the URI referenced by <oberon-param href='#URIDesc.Clone.file'>file</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Creates a deep copy of the URI referenced by <oberon-param href='#URIDesc.Clone.file'>file</oberon-param>.  That is, it creates a new instance of <oberon-param href='#URIDesc.Clone.file'>file</oberon-param> and calls <oberon-proc href='URI#URIDesc.Copy'>URI.Copy</oberon-proc> on it.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='file' id='URIDesc.Clone.file' export='no' variable-parameter='no'>
          <type>
            <type-name name='URI' href='#URI'/>
          </type>
        </receiver-decl>
        <result-type>
          <type-name name='URI' href='#URI'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='URI:Scheme:Hierarchical' name='Clone' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.Clone'/>
      <redefined-method module='URI' name='Clone' class='URI' href='URI#URIDesc.Clone'/>
      <redefined-method module='URI' name='Clone' class='URI' href='URI#URIDesc.Clone'/>
    </procedure>
    <procedure name='GetPath' id='URIDesc.GetPath' export='yes'>
      <oberon-doc>
        <summary>Returns the file path associated with the URI <oberon-param href='#URIDesc.GetPath.file'>file</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Returns the file path associated with the URI <oberon-param href='#URIDesc.GetPath.file'>file</oberon-param>.  On a Unix system, this is identical to the URI's path component.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='file' id='URIDesc.GetPath.file' export='no' variable-parameter='no'>
          <type>
            <type-name name='URI' href='#URI'/>
          </type>
        </receiver-decl>
        <result-type>
          <type-name module='Object' name='String8' href='Object#String8'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <procedure name='GetChannel' id='URIDesc.GetChannel' export='yes'>
      <doc-inherited-from module='URI' name='GetChannel' class='URI' href='URI#URIDesc.GetChannel'/>
      <oberon-doc>
        <summary>Opens a channel to the resource indicated by URI <oberon-param href='#URIDesc.GetChannel.file'>file</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Opens a channel to the resource indicated by URI <oberon-param href='#URIDesc.GetChannel.file'>file</oberon-param>.  Depending on <oberon-param href='#URIDesc.GetChannel.mode'>mode</oberon-param>, one of these operations is performed:</p>
        <table pad-after='yes'>
          <table-row pad-after='yes'>
            <table-first-column pad-after='no'><oberon-const href='URI#channelNew'>channelNew</oberon-const></table-first-column>
            <item pad-after='no'>
              <p pad-after='no' no-indent='yes'>Opens a channel to a new instance of the resource.  If the resource exists, it is truncated.  The channel is opened for both read and write access.</p>
            </item>
          </table-row>
          <table-row pad-after='yes'>
            <table-first-column pad-after='no'><oberon-const href='URI#channelTmp'>channelTmp</oberon-const></table-first-column>
            <item pad-after='no'>
              <p pad-after='no' no-indent='yes'>Opens a channel to a new instance of the resource, but does not register the resource within its naming service.  The channel is opened for both read and write access.  Please note that some channel operations do not support this operation.  For those that do, registration of the resource in the naming service depends on the channel implementation.</p>
            </item>
          </table-row>
          <table-row pad-after='no'>
            <table-first-column pad-after='no'><oberon-const href='URI#channelOld'>channelOld</oberon-const></table-first-column>
            <item pad-after='no'>
              <p pad-after='no' no-indent='yes'>Opens a channel to an existing resource.  Only read access is enabled.</p>
            </item>
          </table-row>
        </table>
        <p pad-after='yes' no-indent='no'>On success, a channel instance is returned.  On failure, an exception of type <oberon-type href='IO#Error'>IO.Error</oberon-type> is raised.</p>
        <p pad-after='yes' no-indent='no'>Note: Currently, only the <samp>file</samp> URI (<oberon-module href='#'>URI:Scheme:File</oberon-module>) and the <samp>http</samp> URI (<oberon-module href='URI:Scheme:HTTP#'>URI:Scheme:HTTP</oberon-module>) support this method.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='file' id='URIDesc.GetChannel.file' export='no' variable-parameter='no'>
          <type>
            <type-name name='URI' href='#URI'/>
          </type>
        </receiver-decl>
        <parameter-decl name='mode' id='URIDesc.GetChannel.mode' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI0' name='ChannelMode' href='URI#ChannelMode'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name module='IO' name='ByteChannel' href='IO#ByteChannel'/>
        </result-type>
        <exceptions>
          <type-name module='IO' name='Error' href='IO#Error'/>
        </exceptions>
      </formal-parameters>
      <redefined-method module='URI' name='GetChannel' class='URI' href='URI#URIDesc.GetChannel'/>
      <redefined-method module='URI' name='GetChannel' class='URI' href='URI#URIDesc.GetChannel'/>
      <redefined-method module='URI' name='GetChannel' class='URI' href='URI#URIDesc.GetChannel'/>
    </procedure>
    <procedure name='NewPrototype' id='NewPrototype' export='yes'>
      <formal-parameters>
        <result-type>
          <type-name name='URI' href='#URI'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <procedure name='GetCwd' id='GetCwd' export='yes'>
      <oberon-doc>
        <summary>Creates an absolute file URI for the current working directory.</summary>
        <p pad-after='yes' no-indent='yes'>Creates an absolute file URI for the current working directory.  If the current working directory cannot be determined, the value <code>NIL</code> is returned.</p>
      </oberon-doc>
      <formal-parameters>
        <result-type>
          <type-name name='URI' href='#URI'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <procedure name='ToURI' id='ToURI' export='yes'>
      <oberon-doc>
        <summary>Constructs a <samp>file:</samp> URI for a given file path.</summary>
        <p pad-after='yes' no-indent='yes'>Constructs a <samp>file:</samp> URI for a given file path.  Characters that are not valid within an URI are escaped.</p>
      </oberon-doc>
      <formal-parameters>
        <parameter-decl name='filePath' id='ToURI.filePath' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='URI' href='#URI'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <base-class module='URI:Scheme:Hierarchical' class='Generic' href='URI:Scheme:Hierarchical#Generic'>
      <inherited-method module='URI:Scheme:Hierarchical' name='AppendPath' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.AppendPath'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='AppendSegment' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.AppendSegment'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='ClearPath' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.ClearPath'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='Clone' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.Clone'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='Copy' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.Copy'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='MakeRelative' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.MakeRelative'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='NewAuthority' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.NewAuthority'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='NewQuery' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.NewQuery'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='ParsePath' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.ParsePath'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='RemoveSegment' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.RemoveSegment'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='ResolveRelative' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.ResolveRelative'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='StripSegments' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.StripSegments'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='ToString' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.ToString'/>
      <inherited-method module='URI:Scheme:Hierarchical' name='WriteXML' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.WriteXML'/>
      <inherited-field module='URI:Scheme:Hierarchical' name='absolutePath' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.absolutePath'/>
      <inherited-field module='URI:Scheme:Hierarchical' name='pathList' class='Generic' href='URI:Scheme:Hierarchical#GenericDesc.pathList'/>
      <base-class module='URI' class='HierarchicalURI' href='URI#HierarchicalURI'>
        <inherited-method module='URI' name='AuthorityMandatory' class='HierarchicalURI' href='URI#HierarchicalURIDesc.AuthorityMandatory'/>
        <inherited-method module='URI' name='SetAuthority' class='HierarchicalURI' href='URI#HierarchicalURIDesc.SetAuthority'/>
        <inherited-method module='URI' name='SetQuery' class='HierarchicalURI' href='URI#HierarchicalURIDesc.SetQuery'/>
        <inherited-field module='URI' name='authority' class='HierarchicalURI' href='URI#HierarchicalURIDesc.authority'/>
        <inherited-field module='URI' name='query' class='HierarchicalURI' href='URI#HierarchicalURIDesc.query'/>
        <base-class module='URI' class='URI' href='URI#URI'>
          <inherited-method module='URI' name='AppendScheme' class='URI' href='URI#URIDesc.AppendScheme'/>
          <inherited-method module='URI' name='GetChannel' class='URI' href='URI#URIDesc.GetChannel'/>
          <inherited-method module='URI' name='SetSchemeId' class='URI' href='URI#URIDesc.SetSchemeId'/>
          <inherited-field module='URI' name='schemeId' class='URI' href='URI#URIDesc.schemeId'/>
          <base-class module='Object' class='Object' href='Object#Object'>
            <inherited-method module='Object' name='Equals' class='Object' href='Object#ObjectDesc.Equals'/>
            <inherited-method module='Object' name='HashCode' class='Object' href='Object#ObjectDesc.HashCode'/>
          </base-class>
        </base-class>
      </base-class>
    </base-class>
  </class>
  <module-ref name='URI'>
    <ref-target type='html' relative-uri='../../URI.html'/>
  </module-ref>
  <module-ref name='IO'>
    <ref-target type='html' relative-uri='../../IO.html'/>
  </module-ref>
  <module-ref name='URI:Scheme:HTTP'>
    <ref-target type='html' relative-uri='HTTP.html'/>
  </module-ref>
  <module-ref name='URI:Scheme:Hierarchical'>
    <ref-target type='html' relative-uri='Hierarchical.html'/>
  </module-ref>
  <module-ref name='Object'>
    <ref-target type='html' relative-uri='../../Object.html'/>
  </module-ref>
</interface-description>
