<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->

 <reference xml:id="ref.hwapi" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
  <title>Hyperwave API &Functions;</title>

  <partintro>
   <section xml:id="hwapi.apache">
    <title>Integration with Apache</title>
    <para>
     The integration with Apache and possible other servers is already
     described in the <link linkend="ref.hw">Hyperwave module</link>
     which has been the first extension to connect a Hyperwave Server.
    </para>
   </section>

   <!-- FIXME: This extension apparently defines a class.. -->
   <section xml:id="hwapi.classes">
    <title>Classes</title>
    <para>
     The API provided by the HW_API extension is fully object oriented.
     It is very similar to the C++ interface of the Hyperwave SDK.
     It consist of the following classes.
     <itemizedlist>
      <listitem>
       <simpara>
        <classname>HW_API</classname>
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>HW_API_Object</classname>
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>HW_API_Attribute</classname>
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>HW_API_Error</classname>
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>HW_API_Content</classname>
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>HW_API_Reason</classname>
          </simpara>
         </listitem>
     </itemizedlist>
     Some basic classes like <classname>HW_API_String</classname>,
     <classname>HW_API_String_Array</classname>, etc., which exist in the
     Hyperwave SDK have not been implemented since PHP has powerful
     replacements for them.
    </para>
    <para>
     Each class has certain method, whose names are identical to its
     counterparts in the Hyperwave SDK. Passing arguments to this function
     differs from all the other PHP extensions but is close to the C++ API of
     the HW SDK. Instead of passing several parameters they are all put into
     an associated array and passed as one parameter. The names of the keys
     are identical to those documented in the HW SDK. The common parameters
     are listed below. If other parameters are required they will be
     documented if needed.
     <itemizedlist>
      <listitem>
       <simpara>
        <classname>objectIdentifier</classname> The name or id of an object,
        e.g. "rootcollection", "0x873A8768 0x00000002".
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>parentIdentifier</classname> The name or id of an object
        which is considered to be a parent.
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>object</classname> An instance of class HW_API_Object.
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>parameters</classname> An instance of class HW_API_Object.
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>version</classname> The version of an object.
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>mode</classname> An integer value determine the way an
        operation is executed.
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>attributeSelector</classname> Any array of strings, each
        containing a name of an attribute. This is used if you retrieve the
        object record and want to include certain attributes.
          </simpara>
         </listitem>
      <listitem>
       <simpara>
        <classname>objectQuery</classname> A query to select certain object
        out of a list of objects. This is used to reduce the number of objects
        which was delivered by a function like
        <function>hw_api->children</function> or <function>hw_api->find</function>.
          </simpara>
         </listitem>
     </itemizedlist>
    </para>
    <note>
     <para>
      Methods returning <type>boolean</type> can return &true;, &false; or
      <classname>HW_API_Error</classname> object.
     </para>
    </note>
   </section>
  </partintro>

&reference.hwapi.entities.functions;

 </reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->