blob: b1fad847daa0ab9edd903833c380308d09d62266 [file] [log] [blame]
<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.10</h3>
</BODY>
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </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 &lt;<a class="el" href="CountersTable_8hpp-source.html">CountersTable.hpp</a>&gt;</code>
<p>
Collaboration diagram for Counter:<p><center><img src="structCounter__coll__graph.gif" border="0" usemap="#Counter_coll_map" alt="Collaboration graph"></center>
<map name="Counter_coll_map">
<area href="classElemNumber.html" shape="rect" coords="308,328,404,304">
<area href="classElemTemplateElement.html" shape="rect" coords="185,163,334,139">
<area href="classXalanDOMString.html" shape="rect" coords="289,43,406,19">
<area href="classAVT.html" shape="rect" coords="486,163,531,139">
<area href="classXPath.html" shape="rect" coords="555,163,609,139">
<area href="structDecimalToRoman.html" shape="rect" coords="662,163,779,139">
<area href="classXalanNode.html" shape="rect" coords="454,328,534,304">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="structCounter-members.html">List of all members.</a><h2>Public Types</h2>
<ul>
<li>typedef unsigned long <a class="el" href="structCounter.html#s0">CountType</a>
<li>typedef XalanVector&lt;<a class="el" href="classXalanNode.html">XalanNode</a>*&gt; <a class="el" href="structCounter.html#s1">NodeVectorType</a>
</ul>
<h2>Public Methods</h2>
<ul>
<li><a class="el" href="structCounter.html#a0">Counter</a> (<a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp;theManager, const <a class="el" href="classElemNumber.html">ElemNumber</a> *numberElem, <a class="el" href="structCounter.html#s1">NodeVectorType</a> &amp;countNodes)
<dl class="el"><dd><font size=-1><em>Construct a counter object.</em> <a href="#a0">More...</a><em><br><br></em></font></dl><li><a class="el" href="structCounter.html#a1">Counter</a> (<a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp;theManager, const <a class="el" href="classElemNumber.html">ElemNumber</a> *numberElem=0)
<dl class="el"><dd><font size=-1><em>Construct a counter object.</em> <a href="#a1">More...</a><em><br><br></em></font></dl><li><a class="el" href="structCounter.html#a2">Counter</a> (const Counter &amp;other, <a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp;theManager)
<li><a class="el" href="structCounter.html#s0">CountType</a> <a class="el" href="structCounter.html#a3">getPreviouslyCounted</a> (<a class="el" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a> &amp;support, const <a class="el" href="classXalanNode.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="#a3">More...</a><em><br><br></em></font></dl><li><a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="structCounter.html#a4">getLast</a> () const
<dl class="el"><dd><font size=-1><em>Get the last node in the list.</em> <a href="#a4">More...</a><em><br><br></em></font></dl></ul>
<h2>Public Attributes</h2>
<ul>
<li><a class="el" href="structCounter.html#s0">CountType</a> <a class="el" href="structCounter.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><br><br></em></font></dl><li><a class="el" href="structCounter.html#s1">NodeVectorType</a> <a class="el" href="structCounter.html#m1">m_countNodes</a>
<dl class="el"><dd><font size=-1><em>A vector of all nodes counted so far.</em> <a href="#m1">More...</a><em><br><br></em></font></dl><li>const <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="structCounter.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><br><br></em></font></dl><li>const <a class="el" href="classElemNumber.html">ElemNumber</a>* <a class="el" href="structCounter.html#m3">m_numberElem</a>
<dl class="el"><dd><font size=-1><em>The owning xsl:number element.</em> <a href="#m3">More...</a><em><br><br></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::CountType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
typedef unsigned long Counter::CountType
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="s1" doxytag="Counter::NodeVectorType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
typedef XalanVector&lt; <a class="el" href="classXalanNode.html">XalanNode</a> *&gt; Counter::NodeVectorType&lt;<a class="el" href="classXalanNode.html">XalanNode</a>*&gt;
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="Counter::Counter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
Counter::Counter (
</b></td>
<td valign="bottom"><b>
<a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp; <em>theManager</em>,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
const <a class="el" href="classElemNumber.html">ElemNumber</a> * <em>numberElem</em>,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
<a class="el" href="structCounter.html#s1">NodeVectorType</a> &amp; <em>countNodes</em>&nbsp;)
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Construct a counter object.
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="Counter::Counter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
Counter::Counter (
</b></td>
<td valign="bottom"><b>
<a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp; <em>theManager</em>,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
const <a class="el" href="classElemNumber.html">ElemNumber</a> * <em>numberElem</em> = 0&nbsp;)
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Construct a counter object.
<p>
</td>
</tr>
</table>
<a name="a2" doxytag="Counter::Counter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
Counter::Counter (
</b></td>
<td valign="bottom"><b>
const Counter &amp; <em>other</em>,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
<a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp; <em>theManager</em>&nbsp;)
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a4" doxytag="Counter::getLast"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * Counter::getLast (
</b></td>
<td valign="bottom"><b>
) const
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Get the last node in the list.
<p>
</td>
</tr>
</table>
<a name="a3" doxytag="Counter::getPreviouslyCounted"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
<a class="el" href="structCounter.html#s0">CountType</a> Counter::getPreviouslyCounted (
</b></td>
<td valign="bottom"><b>
<a class="el" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a> &amp; <em>support</em>,
</b></td>
</tr>
<tr>
<td></td>
<td><b>
const <a class="el" href="classXalanNode.html">XalanNode</a> * <em>node</em>&nbsp;) const
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<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>
&nbsp;</td><td>
The node to be counted. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
The count of the node, or 0 if not found. </dl> </td>
</tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a name="m1" doxytag="Counter::m_countNodes"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
<a class="el" href="structCounter.html#s1">NodeVectorType</a> Counter::m_countNodes
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
A vector of all nodes counted so far.
<p>
</td>
</tr>
</table>
<a name="m0" doxytag="Counter::m_countNodesStartCount"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
<a class="el" href="structCounter.html#s0">CountType</a> Counter::m_countNodesStartCount
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<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. </td>
</tr>
</table>
<a name="m2" doxytag="Counter::m_fromNode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
const <a class="el" href="classXalanNode.html">XalanNode</a> * Counter::m_fromNode
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<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. </td>
</tr>
</table>
<a name="m3" doxytag="Counter::m_numberElem"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap valign="top"><b>
const <a class="el" href="classElemNumber.html">ElemNumber</a> * Counter::m_numberElem
</b></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The owning xsl:number element.
<p>
</td>
</tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="CountersTable_8hpp-source.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="../resources/dot.gif" width="1" alt="dot"></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.10</B><BR>
Copyright &copy; 1999-2004 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" ALT="Apache Logo">
</TD>
</TR>
</TABLE>