<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Xalan-C++ API : Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<!-- The head section is copied from Doxygen 1.7.1 generated default output -->
<body>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center"><a href="../index.html">The Xalan C++ XSLT Processor Version 1.11</a></h3>
<hr/>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<h1>NodeRefListBase.hpp</h1>  </div>
</div>
<div class="contents">
<a href="NodeRefListBase_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span>
<a name="l00003"></a>00003 <span class="comment"> * or more contributor license agreements. See the NOTICE file</span>
<a name="l00004"></a>00004 <span class="comment"> * distributed with this work for additional information</span>
<a name="l00005"></a>00005 <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span>
<a name="l00006"></a>00006 <span class="comment"> * to you under the Apache License, Version 2.0 (the  &quot;License&quot;);</span>
<a name="l00007"></a>00007 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00008"></a>00008 <span class="comment"> * You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 <span class="preprocessor">#if !defined(NODEREFLISTBASE_HEADER_GUARD_1357924680)</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define NODEREFLISTBASE_HEADER_GUARD_1357924680</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="comment">// Base include file.  Must be first.</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="XPathDefinitions_8hpp.html">xalanc/XPath/XPathDefinitions.hpp</a>&gt;</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;cstddef&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 XALAN_CPP_NAMESPACE_BEGIN
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="keyword">class </span><a class="code" href="classXalanNode.html">XalanNode</a>;
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="comment"></span>
<a name="l00040"></a>00040 <span class="comment">/**</span>
<a name="l00041"></a>00041 <span class="comment"> * Local implementation of NodeRefList.  This class is for internal use only.</span>
<a name="l00042"></a>00042 <span class="comment"> */</span>
<a name="l00043"></a>00043 
<a name="l00044"></a><a class="code" href="classNodeRefListBase.html">00044</a> <span class="keyword">class </span><a class="code" href="XPathDefinitions_8hpp.html#aa9c15f77ef5ab2dc518733b0fd07c141">XALAN_XPATH_EXPORT</a> <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>
<a name="l00045"></a>00045 {
<a name="l00046"></a>00046 <span class="keyword">public</span>:
<a name="l00047"></a>00047 
<a name="l00048"></a>00048     <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>();
<a name="l00049"></a>00049 
<a name="l00050"></a>00050     <span class="keyword">virtual</span>
<a name="l00051"></a>00051     ~<a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>();
<a name="l00052"></a>00052 
<a name="l00053"></a><a class="code" href="classNodeRefListBase.html#a4a4343b0f47a5f789bb00f5fb3556337">00053</a>     <span class="keyword">typedef</span> XalanSize_t     size_type;
<a name="l00054"></a>00054 <span class="comment"></span>
<a name="l00055"></a>00055 <span class="comment">    /**</span>
<a name="l00056"></a>00056 <span class="comment">     * Returns the &lt;code&gt;index&lt;/code&gt;th item in the collection. If</span>
<a name="l00057"></a>00057 <span class="comment">     * &lt;code&gt;index&lt;/code&gt; is greater than or equal to the number of nodes in</span>
<a name="l00058"></a>00058 <span class="comment">     * the list, this returns &lt;code&gt;null&lt;/code&gt;.</span>
<a name="l00059"></a>00059 <span class="comment">     *</span>
<a name="l00060"></a>00060 <span class="comment">     * @param index index into the collection</span>
<a name="l00061"></a>00061 <span class="comment">     * @return node at the &lt;code&gt;index&lt;/code&gt;th position in the</span>
<a name="l00062"></a>00062 <span class="comment">     *         &lt;code&gt;NodeList&lt;/code&gt;, or &lt;code&gt;null&lt;/code&gt; if that is not a</span>
<a name="l00063"></a>00063 <span class="comment">     *         valid index</span>
<a name="l00064"></a>00064 <span class="comment">     */</span>
<a name="l00065"></a>00065     <span class="keyword">virtual</span> <a class="code" href="classXalanNode.html">XalanNode</a>*
<a name="l00066"></a>00066     item(<a class="code" href="classNodeRefListBase.html#a4a4343b0f47a5f789bb00f5fb3556337">size_type</a>  index) <span class="keyword">const</span> = 0;
<a name="l00067"></a>00067 <span class="comment"></span>
<a name="l00068"></a>00068 <span class="comment">    /**</span>
<a name="l00069"></a>00069 <span class="comment">     * Determine the number of nodes in the list. The range of valid child node</span>
<a name="l00070"></a>00070 <span class="comment">     * indices is 0 to &lt;code&gt;length-1&lt;/code&gt; inclusive. </span>
<a name="l00071"></a>00071 <span class="comment">     *</span>
<a name="l00072"></a>00072 <span class="comment">     * @return number of nodes</span>
<a name="l00073"></a>00073 <span class="comment">     */</span>
<a name="l00074"></a>00074     <span class="keyword">virtual</span> <a class="code" href="classNodeRefListBase.html#a4a4343b0f47a5f789bb00f5fb3556337">size_type</a>
<a name="l00075"></a>00075     getLength() <span class="keyword">const</span> = 0;
<a name="l00076"></a>00076 <span class="comment"></span>
<a name="l00077"></a>00077 <span class="comment">    /**</span>
<a name="l00078"></a>00078 <span class="comment">     * Retrieve the zero based index of the node in the list</span>
<a name="l00079"></a>00079 <span class="comment">     * </span>
<a name="l00080"></a>00080 <span class="comment">     * @param theNode node whose index to find</span>
<a name="l00081"></a>00081 <span class="comment">     * @return index of node</span>
<a name="l00082"></a>00082 <span class="comment">     */</span>
<a name="l00083"></a>00083     <span class="keyword">virtual</span> <a class="code" href="classNodeRefListBase.html#a4a4343b0f47a5f789bb00f5fb3556337">size_type</a>
<a name="l00084"></a>00084     <a class="code" href="DOMStringHelper_8hpp.html#ac52b792d9b03ee495697fbd6d39ebf9e" title="Simulates the java String method indexOf().">indexOf</a>(<span class="keyword">const</span> <a class="code" href="classXalanNode.html">XalanNode</a>*    theNode) <span class="keyword">const</span> = 0;
<a name="l00085"></a>00085 
<a name="l00086"></a>00086 <span class="preprocessor">#if defined(XALAN_INLINE_INITIALIZATION)</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>    <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classNodeRefListBase.html#a4a4343b0f47a5f789bb00f5fb3556337">size_type</a>  npos = ~0u;
<a name="l00088"></a>00088 <span class="preprocessor">#else</span>
<a name="l00089"></a><a class="code" href="classNodeRefListBase.html#a2a9a63deb601f6b10897667488c4e6b5">00089</a> <span class="preprocessor"></span>    <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classNodeRefListBase.html#a4a4343b0f47a5f789bb00f5fb3556337">size_type</a>  npos;
<a name="l00090"></a>00090 <span class="preprocessor">#endif</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span>
<a name="l00092"></a>00092 <span class="keyword">protected</span>:
<a name="l00093"></a>00093 
<a name="l00094"></a><a class="code" href="classNodeRefListBase.html#a66717ab877a33d52927c90eb32f625e0">00094</a>     <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>(<span class="keyword">const</span> <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>&amp;)
<a name="l00095"></a>00095     {
<a name="l00096"></a>00096     }
<a name="l00097"></a>00097 
<a name="l00098"></a>00098     <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>&amp;
<a name="l00099"></a><a class="code" href="classNodeRefListBase.html#a093a6ac4a7a9734439f4ad383f6ee2ed">00099</a>     operator=(<span class="keyword">const</span> <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>&amp;)
<a name="l00100"></a>00100     {
<a name="l00101"></a>00101         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00102"></a>00102     }
<a name="l00103"></a>00103 };
<a name="l00104"></a>00104 
<a name="l00105"></a>00105 
<a name="l00106"></a>00106 
<a name="l00107"></a>00107 XALAN_CPP_NAMESPACE_END
<a name="l00108"></a>00108 
<a name="l00109"></a>00109 
<a name="l00110"></a>00110 
<a name="l00111"></a>00111 <span class="preprocessor">#endif  // NODEREFLISTBASE_HEADER_GUARD_1357924680</span>
</pre></div></div>
</div>
<p align="center"><a href="graph_legend.html">Interpreting class diagrams</a></p>
<p><font color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><a href="http://www.doxygen.org/">Doxygen</a> and 
<a href="http://www.graphviz.org/">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="80%">
 <tr>
  <td width="80%" valign="top">
	<p align="center"><b>Xalan-C++ XSLT Processor Version 1.11</b><br/>
	Copyright &copy; 1999-2012 The Apache Software Foundation.<br/>
	All Rights Reserved.</p>
  </td>
 </tr>
 <tr>
  <td width="100%">
	<p align="center"><img src="asf_logo_wide.gif" width="268" height="25" align="bottom" border="0" alt="Apache Logo">
  </td>
 </tr>
</table>
</body>
</html>
