<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD> <BODY> <h2 align="center">Xalan-C++ API Documentation</h2> <h3 align="center">The Xalan C++ XSLT Processor Version 1.4</h3> </BODY> <!-- Generated by Doxygen 1.1.2 on Mon Sep 16 08:29:53 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center> <hr><h1>Counter Struct Reference</h1> A class that does incremental counting for support of xsl:number. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="CountersTable.hpp-source.html">CountersTable.hpp</a>></code> <p> Collaboration diagram for Counter:<p><center><img src="class_counter_coll_graph.gif" border="0" usemap="#Counter_impl_map"></center> <map name="Counter_impl_map"> <area href="class_elemnumber.html" shape="rect" coords="19,38,107,16"> <area href="class_xalannode.html" shape="rect" coords="27,107,99,86"> </map><p> <a href="class_counter-members.html">List of all members.</a><h2>Public Types</h2> <ul> <li>typedef std::vector<<a class="el" href="class_xalannode.html">XalanNode</a>*> <a class="el" href="class_counter.html#s0">NodeVectorType</a> </ul> <h2>Public Methods</h2> <ul> <li><a class="el" href="class_counter.html#a0">Counter</a> ( const <a class="el" href="class_elemnumber.html">ElemNumber</a>* numberElem, <a class="el" href="class_counter.html#s0">NodeVectorType</a>& countNodes) <dl class="el"><dd><font size=-1><em>Construct a counter object.</em></font></dl><li><a class="el" href="class_counter.html#a1">Counter</a> (const <a class="el" href="class_elemnumber.html">ElemNumber</a>* numberElem = 0) <dl class="el"><dd><font size=-1><em>Construct a counter object.</em></font></dl><li>int <a class="el" href="class_counter.html#a2">getPreviouslyCounted</a> ( <a class="el" href="class_stylesheetexecutioncontext.html">StylesheetExecutionContext</a>& support, const <a class="el" href="class_xalannode.html">XalanNode</a>* node) const <dl class="el"><dd><font size=-1><em>Try to find a node that was previously counted.</em> <a href="#a2">More...</a><em></em></font></dl><li><a class="el" href="class_xalannode.html">XalanNode</a>* <a class="el" href="class_counter.html#a3">getLast</a> () const <dl class="el"><dd><font size=-1><em>Get the last node in the list.</em></font></dl></ul> <h2>Public Attributes</h2> <ul> <li>int <a class="el" href="class_counter.html#m0">m_countNodesStartCount</a> <dl class="el"><dd><font size=-1><em>The start count from where m_countNodes counts from.</em> <a href="#m0">More...</a><em></em></font></dl><li><a class="el" href="class_counter.html#s0">NodeVectorType</a> <a class="el" href="class_counter.html#m1">m_countNodes</a> <dl class="el"><dd><font size=-1><em>A vector of all nodes counted so far.</em></font></dl><li>const <a class="el" href="class_xalannode.html">XalanNode</a>* <a class="el" href="class_counter.html#m2">m_fromNode</a> <dl class="el"><dd><font size=-1><em>The node from where the counting starts.</em> <a href="#m2">More...</a><em></em></font></dl><li>const <a class="el" href="class_elemnumber.html">ElemNumber</a>* <a class="el" href="class_counter.html#m3">m_numberElem</a> <dl class="el"><dd><font size=-1><em>The owning xsl:number element.</em></font></dl></ul> <hr><a name="_details"></a><h2>Detailed Description</h2> A class that does incremental counting for support of xsl:number. <p> This class stores a cache of counted nodes (m_countNodes). It tries to cache the counted nodes in document order... the node count is based on its position in the cache list <p> <hr><h2>Member Typedef Documentation</h2> <a name="s0" doxytag="Counter::NodeVectorType"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> typedef std::vector<<a class="el" href="class_xalannode.html">XalanNode</a>*> Counter::NodeVectorType</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> </div> <hr><h2>Constructor & Destructor Documentation</h2> <a name="a0" doxytag="Counter::Counter"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> Counter::Counter ( </b></td> <td><b> const <a class="el" href="class_elemnumber.html">ElemNumber</a> * <em>numberElem</em>, </b></td></tr> <tr><td></td><td><b> <a class="el" href="class_counter.html#s0">NodeVectorType</a> & <em>countNodes</em>)</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> Construct a counter object. <p> </div> <a name="a1" doxytag="Counter::Counter"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> Counter::Counter ( </b></td> <td><b> const <a class="el" href="class_elemnumber.html">ElemNumber</a> * <em>numberElem</em> = 0)</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> Construct a counter object. <p> </div> <hr><h2>Member Function Documentation</h2> <a name="a3" doxytag="Counter::getLast"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> <a class="el" href="class_xalannode.html">XalanNode</a> * Counter::getLast () const</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> Get the last node in the list. <p> </div> <a name="a2" doxytag="Counter::getPreviouslyCounted"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> int Counter::getPreviouslyCounted ( </b></td> <td><b> <a class="el" href="class_stylesheetexecutioncontext.html">StylesheetExecutionContext</a> & <em>support</em>, </b></td></tr> <tr><td></td><td><b> const <a class="el" href="class_xalannode.html">XalanNode</a> * <em>node</em>) const</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> Try to find a node that was previously counted. <p> If found, return a positive integer that corresponds to the count. <dl compact><dt> <b>Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>node</em> </td><td> The node to be counted. </td></tr> </table> </dl><dl compact><dt> <b>Returns: </b><dd> The count of the node, or -1 if not found. </dl></div> <hr><h2>Member Data Documentation</h2> <a name="m1" doxytag="Counter::m_countNodes"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> <a class="el" href="class_counter.html#s0">NodeVectorType</a> Counter::m_countNodes</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> A vector of all nodes counted so far. <p> </div> <a name="m0" doxytag="Counter::m_countNodesStartCount"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> int Counter::m_countNodesStartCount</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> The start count from where m_countNodes counts from. <p> In other words, the count of a given node in the m_countNodes vector is node position + m_countNodesStartCount. </div> <a name="m2" doxytag="Counter::m_fromNode"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> const <a class="el" href="class_xalannode.html">XalanNode</a> * Counter::m_fromNode</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> The node from where the counting starts. <p> This is needed to find a counter if the node being counted is not immediatly found in the m_countNodes vector. </div> <a name="m3" doxytag="Counter::m_numberElem"><p> <table width=100% cellpadding=2 cellspacing=0 border=0> <tr> <td class="md"><b> <table cellspadding=0 cellspacing=0 border=0> <tr> <td><b> const <a class="el" href="class_elemnumber.html">ElemNumber</a> * Counter::m_numberElem</b></td></tr> </b></td> </tr> </table> </td> </tr> </table> </a> <div class="in"> <p> The owning xsl:number element. <p> </div> <hr>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="CountersTable.hpp.html">CountersTable.hpp</a></ul> <p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p> <p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"> <i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and <A href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</A> are used to generate this API documentation from the Xalan-C header files.</I></FONT></p> <TABLE border="0" cellpadding="0" cellspacing="0" width="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1"></TD></TR></TABLE> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%"> <TR> <TD WIDTH="80%" VALIGN="TOP"> <P ALIGN="CENTER"><B>Xalan-C++ XSLT Processor Version 1.4</B><BR> Copyright © 2000, 2001, 2002 The Apache Software Foundation. All Rights Reserved.</i></p> </TD> </TR> <TR> <TD WIDTH="100%"> <P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0"> </TD> </TR> </TABLE>