<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<phpdoc:classref xml:id="class.cachingiterator" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>The CachingIterator class</title>
 <titleabbrev>CachingIterator</titleabbrev>
 
 <partintro>
 
<!-- {{{ CachingIterator intro -->
  <section xml:id="cachingiterator.intro">
   &reftitle.intro;
   <para>
    This object supports cached iteration over another iterator.
   </para>
  </section>
<!-- }}} -->
 
  <section xml:id="cachingiterator.synopsis">
   &reftitle.classsynopsis;
 
<!-- {{{ Synopsis -->
   <classsynopsis class="class">
    <ooclass>
     <classname>CachingIterator</classname>
    </ooclass>

    <ooclass>
     <modifier>extends</modifier>
     <classname>IteratorIterator</classname>
    </ooclass>

    <oointerface>
     <modifier>implements</modifier>
     <interfacename>ArrayAccess</interfacename>
    </oointerface>

    <oointerface>
     <interfacename>Countable</interfacename>
    </oointerface>

    <oointerface>
     <interfacename>Stringable</interfacename>
    </oointerface>

    <classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="cachingiterator.constants.call-tostring">CachingIterator::CALL_TOSTRING</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="cachingiterator.constants.catch-get-child">CachingIterator::CATCH_GET_CHILD</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="cachingiterator.constants.tostring-use-key">CachingIterator::TOSTRING_USE_KEY</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="cachingiterator.constants.tostring-use-current">CachingIterator::TOSTRING_USE_CURRENT</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="cachingiterator.constants.tostring-use-inner">CachingIterator::TOSTRING_USE_INNER</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="cachingiterator.constants.full-cache">CachingIterator::FULL_CACHE</varname>
    </fieldsynopsis>

    <classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.cachingiterator')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='CachingIterator'])">
     <xi:fallback/>
    </xi:include>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.cachingiterator')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='CachingIterator'])">
     <xi:fallback/>
    </xi:include>

    <classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.iteratoriterator')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='IteratorIterator'])">
     <xi:fallback/>
    </xi:include>
   </classsynopsis>
<!-- }}} -->

  </section>
  
<!-- {{{ CachingIterator constants -->
  <section xml:id="cachingiterator.constants">
   &reftitle.constants;
   <variablelist>

    <varlistentry xml:id="cachingiterator.constants.call-tostring">
     <term><constant>CachingIterator::CALL_TOSTRING</constant></term>
     <listitem>
      <para>Convert every element to string.</para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="cachingiterator.constants.catch-get-child">
     <term><constant>CachingIterator::CATCH_GET_CHILD</constant></term>
     <listitem>
      <para>Don't throw exception in accessing children.</para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="cachingiterator.constants.tostring-use-key">
     <term><constant>CachingIterator::TOSTRING_USE_KEY</constant></term>
     <listitem>
      <para>
       Use <link linkend="cachingiterator.key">key</link> for conversion to
       string.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="cachingiterator.constants.tostring-use-current">
     <term><constant>CachingIterator::TOSTRING_USE_CURRENT</constant></term>
     <listitem>
      <para>
       Use <link linkend="cachingiterator.current">current</link> for
       conversion to string.</para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="cachingiterator.constants.tostring-use-inner">
     <term><constant>CachingIterator::TOSTRING_USE_INNER</constant></term>
     <listitem>
      <para>
       Use <link linkend="iteratoriterator.getinneriterator">inner</link>
       for conversion to string.
      </para>
     </listitem>
    </varlistentry>

    <varlistentry xml:id="cachingiterator.constants.full-cache">
     <term><constant>CachingIterator::FULL_CACHE</constant></term>
     <listitem>
      <para>Cache all read data.</para>
     </listitem>
    </varlistentry>

   </variablelist>
  </section>
<!-- }}} -->

  <section role="changelog">
   &reftitle.changelog;
   <informaltable>
    <tgroup cols="2">
     <thead>
      <row>
       <entry>&Version;</entry>
       <entry>&Description;</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>8.0.0</entry>
       <entry>
        <classname>CachingIterator</classname> implements
        <interfacename>Stringable</interfacename> now.
       </entry>
      </row>
     </tbody>
    </tgroup>
   </informaltable>
  </section>


 </partintro>
 
 &reference.spl.entities.cachingiterator;
 
</phpdoc:classref>
<!-- 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
-->
