<!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>XalanSourceTreeAttributeAllocator.hpp</h1>  </div>
</div>
<div class="contents">
<a href="XalanSourceTreeAttributeAllocator_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 
<a name="l00019"></a>00019 <span class="preprocessor">#if !defined(XALANSOURCETREEATTRIBUTEALLOCATOR_INCLUDE_GUARD_12455133)</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define XALANSOURCETREEATTRIBUTEALLOCATOR_INCLUDE_GUARD_12455133</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="XalanSourceTreeDefinitions_8hpp.html">xalanc/XalanSourceTree/XalanSourceTreeDefinitions.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;<a class="code" href="ArenaAllocator_8hpp.html">xalanc/PlatformSupport/ArenaAllocator.hpp</a>&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="XalanSourceTreeAttr_8hpp.html">xalanc/XalanSourceTree/XalanSourceTreeAttr.hpp</a>&gt;</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 XALAN_CPP_NAMESPACE_BEGIN
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 
<a name="l00040"></a><a class="code" href="classXalanSourceTreeAttributeAllocator.html">00040</a> <span class="keyword">class </span><a class="code" href="XalanSourceTreeDefinitions_8hpp.html#ab668c8aeadc52576c1aab5a1888f349c">XALAN_XALANSOURCETREE_EXPORT</a> <a class="code" href="classXalanSourceTreeAttributeAllocator.html">XalanSourceTreeAttributeAllocator</a>
<a name="l00041"></a>00041 {
<a name="l00042"></a>00042 <span class="keyword">public</span>:
<a name="l00043"></a>00043 
<a name="l00044"></a><a class="code" href="classXalanSourceTreeAttributeAllocator.html#a3ed57c1e5cea5fea2ab72f7813d255fe">00044</a>     <span class="keyword">typedef</span> <a class="code" href="classXalanSourceTreeAttr.html">XalanSourceTreeAttr</a>                     <a class="code" href="classXalanSourceTreeAttr.html">ObjectType</a>;
<a name="l00045"></a>00045 
<a name="l00046"></a><a class="code" href="classXalanSourceTreeAttributeAllocator.html#a2c3aac3d03577f9134c51799a7ccd8a7">00046</a>     <span class="keyword">typedef</span> <a class="code" href="classXalanNode.html#a737e6c797973546c10650cd72cc5f8ab">ObjectType::IndexType</a>                   IndexType;
<a name="l00047"></a>00047 
<a name="l00048"></a>00048 <span class="preprocessor">#if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS)</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>    <span class="keyword">typedef</span> <a class="code" href="classArenaBlock.html">ArenaBlock&lt;ObjectType&gt;</a>                  ArenaBlockType;
<a name="l00050"></a>00050 
<a name="l00051"></a>00051     <span class="keyword">typedef</span> <a class="code" href="classArenaAllocator.html">ArenaAllocator</a>&lt;<a class="code" href="classXalanSourceTreeAttr.html">ObjectType</a>,
<a name="l00052"></a>00052                            ArenaBlockType&gt;          <a class="code" href="classArenaAllocator.html">ArenaAllocatorType</a>;
<a name="l00053"></a>00053 <span class="preprocessor">#else</span>
<a name="l00054"></a><a class="code" href="classXalanSourceTreeAttributeAllocator.html#a1dbc97d12d72dce80adc7e2f7c5efab1">00054</a> <span class="preprocessor"></span>    <span class="keyword">typedef</span> <a class="code" href="classArenaAllocator.html">ArenaAllocator&lt;ObjectType&gt;</a>              <a class="code" href="classArenaAllocator.html">ArenaAllocatorType</a>;
<a name="l00055"></a>00055 <span class="preprocessor">#endif</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span>
<a name="l00057"></a><a class="code" href="classXalanSourceTreeAttributeAllocator.html#a13c091adee67b3f2442e99b231097752">00057</a>     <span class="keyword">typedef</span> <a class="code" href="classArenaAllocator.html#a68eaf7d03e3a4a9f35c035481f0acd67">ArenaAllocatorType::size_type</a>           size_type;
<a name="l00058"></a>00058 <span class="comment"></span>
<a name="l00059"></a>00059 <span class="comment">    /**</span>
<a name="l00060"></a>00060 <span class="comment">     * Construct an instance that will allocate blocks of the specified size.</span>
<a name="l00061"></a>00061 <span class="comment">     *</span>
<a name="l00062"></a>00062 <span class="comment">     * @param theBlockSize The block size.</span>
<a name="l00063"></a>00063 <span class="comment">     */</span>
<a name="l00064"></a>00064     <a class="code" href="classXalanSourceTreeAttributeAllocator.html">XalanSourceTreeAttributeAllocator</a>(MemoryManager&amp;  theManager, <a class="code" href="classXalanSourceTreeAttributeAllocator.html#a13c091adee67b3f2442e99b231097752">size_type</a>     theBlockCount);
<a name="l00065"></a>00065 
<a name="l00066"></a>00066     ~<a class="code" href="classXalanSourceTreeAttributeAllocator.html">XalanSourceTreeAttributeAllocator</a>();
<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">     * Create an instance.</span>
<a name="l00070"></a>00070 <span class="comment">     * </span>
<a name="l00071"></a>00071 <span class="comment">     * @param theName The name of the attribute</span>
<a name="l00072"></a>00072 <span class="comment">     * @param theValue The value of the attribute</span>
<a name="l00073"></a>00073 <span class="comment">     * @param theOwnerDocument The document that owns the instance</span>
<a name="l00074"></a>00074 <span class="comment">     * @param theOwnerElement The element that owns the instance</span>
<a name="l00075"></a>00075 <span class="comment">     * @param theIndex The document-order index of the node.</span>
<a name="l00076"></a>00076 <span class="comment">     *</span>
<a name="l00077"></a>00077 <span class="comment">     * @return pointer to the instance</span>
<a name="l00078"></a>00078 <span class="comment">     */</span>
<a name="l00079"></a>00079     <a class="code" href="classXalanSourceTreeAttr.html">ObjectType</a>*
<a name="l00080"></a>00080     create(
<a name="l00081"></a>00081             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;       theName,
<a name="l00082"></a>00082             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;       theValue,
<a name="l00083"></a>00083             <a class="code" href="classXalanSourceTreeElement.html">XalanSourceTreeElement</a>*     theOwnerElement = 0,
<a name="l00084"></a>00084             <a class="code" href="classXalanSourceTreeAttributeAllocator.html#a2c3aac3d03577f9134c51799a7ccd8a7">IndexType</a>                   theIndex = 0);
<a name="l00085"></a>00085 <span class="comment"></span>
<a name="l00086"></a>00086 <span class="comment">    /**</span>
<a name="l00087"></a>00087 <span class="comment">     * Delete all objects from allocator.    </span>
<a name="l00088"></a>00088 <span class="comment">     */</span> 
<a name="l00089"></a>00089     <span class="keywordtype">void</span>
<a name="l00090"></a>00090     reset();
<a name="l00091"></a>00091 <span class="comment"></span>
<a name="l00092"></a>00092 <span class="comment">    /**</span>
<a name="l00093"></a>00093 <span class="comment">     * Get size of an ArenaBlock, that is, the number</span>
<a name="l00094"></a>00094 <span class="comment">     * of objects in each block.</span>
<a name="l00095"></a>00095 <span class="comment">     *</span>
<a name="l00096"></a>00096 <span class="comment">     * @return The size of the block</span>
<a name="l00097"></a>00097 <span class="comment">     */</span>
<a name="l00098"></a>00098     <a class="code" href="classXalanSourceTreeAttributeAllocator.html#a13c091adee67b3f2442e99b231097752">size_type</a>
<a name="l00099"></a><a class="code" href="classXalanSourceTreeAttributeAllocator.html#a1764061257b10c2a9742d132709291c7">00099</a>     getBlockCount()<span class="keyword"> const</span>
<a name="l00100"></a>00100 <span class="keyword">    </span>{
<a name="l00101"></a>00101         <span class="keywordflow">return</span> m_allocator.getBlockCount();
<a name="l00102"></a>00102     }
<a name="l00103"></a>00103 <span class="comment"></span>
<a name="l00104"></a>00104 <span class="comment">    /**</span>
<a name="l00105"></a>00105 <span class="comment">     * Get the number of ArenaBlocks currently allocated.</span>
<a name="l00106"></a>00106 <span class="comment">     *</span>
<a name="l00107"></a>00107 <span class="comment">     * @return The number of blocks.</span>
<a name="l00108"></a>00108 <span class="comment">     */</span>
<a name="l00109"></a>00109     <a class="code" href="XalanMap_8hpp.html#a39efc23c4f36ef6389e4a1fbe96c5f2e">size_type</a>
<a name="l00110"></a><a class="code" href="classXalanSourceTreeAttributeAllocator.html#ada1ed6a25c52a87235c4dfca4c2395c7">00110</a>     getBlockSize()<span class="keyword"> const</span>
<a name="l00111"></a>00111 <span class="keyword">    </span>{
<a name="l00112"></a>00112         <span class="keywordflow">return</span> m_allocator.getBlockSize();
<a name="l00113"></a>00113     }
<a name="l00114"></a>00114 
<a name="l00115"></a>00115 <span class="keyword">private</span>:
<a name="l00116"></a>00116 
<a name="l00117"></a>00117     <span class="comment">// Not implemented...</span>
<a name="l00118"></a>00118     <a class="code" href="classXalanSourceTreeAttributeAllocator.html">XalanSourceTreeAttributeAllocator</a>(<span class="keyword">const</span> <a class="code" href="classXalanSourceTreeAttributeAllocator.html">XalanSourceTreeAttributeAllocator</a>&amp;);
<a name="l00119"></a>00119 
<a name="l00120"></a>00120     <a class="code" href="classXalanSourceTreeAttributeAllocator.html">XalanSourceTreeAttributeAllocator</a>&amp;
<a name="l00121"></a>00121     operator=(<span class="keyword">const</span> <a class="code" href="classXalanSourceTreeAttributeAllocator.html">XalanSourceTreeAttributeAllocator</a>&amp;);
<a name="l00122"></a>00122 
<a name="l00123"></a>00123     <span class="comment">// Data members...</span>
<a name="l00124"></a>00124     ArenaAllocatorType  m_allocator;
<a name="l00125"></a>00125 };
<a name="l00126"></a>00126 
<a name="l00127"></a>00127 
<a name="l00128"></a>00128 
<a name="l00129"></a>00129 XALAN_CPP_NAMESPACE_END
<a name="l00130"></a>00130 
<a name="l00131"></a>00131 
<a name="l00132"></a>00132 
<a name="l00133"></a>00133 <span class="preprocessor">#endif  // XALANSOURCETREEATTRIBUTEALLOCATOR_INCLUDE_GUARD_12455133</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>
