<!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>XObjectFactory.hpp</h1>  </div>
</div>
<div class="contents">
<a href="XObjectFactory_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(XOBJECTFACTORY_HEADER_GUARD_1357924680)</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define XOBJECTFACTORY_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;algorithm&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;cassert&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="XObject_8hpp.html">xalanc/XPath/XObject.hpp</a>&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="XPathExecutionContext_8hpp.html">xalanc/XPath/XPathExecutionContext.hpp</a>&gt;</span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 XALAN_CPP_NAMESPACE_BEGIN
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="keyword">class </span><a class="code" href="classXalanNode.html">XalanNode</a>;
<a name="l00042"></a>00042 <span class="keyword">class </span><a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>;
<a name="l00043"></a>00043 <span class="keyword">class </span><a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>;
<a name="l00044"></a>00044 <span class="keyword">class </span><a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>;
<a name="l00045"></a>00045 <span class="keyword">class </span><a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>;
<a name="l00046"></a>00046 <span class="keyword">class </span><a class="code" href="classXToken.html">XToken</a>;
<a name="l00047"></a>00047 
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 <span class="comment"></span>
<a name="l00050"></a>00050 <span class="comment">/**</span>
<a name="l00051"></a>00051 <span class="comment"> * This class handles the creation of XObjects and manages their lifetime.</span>
<a name="l00052"></a>00052 <span class="comment"> */</span>
<a name="l00053"></a><a class="code" href="classXObjectFactory.html">00053</a> <span class="keyword">class </span><a class="code" href="XPathDefinitions_8hpp.html#aa9c15f77ef5ab2dc518733b0fd07c141">XALAN_XPATH_EXPORT</a> <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>
<a name="l00054"></a>00054 {
<a name="l00055"></a>00055 <span class="keyword">public</span>:
<a name="l00056"></a>00056 
<a name="l00057"></a><a class="code" href="classXObjectFactory.html#a30645d3c27414677bbb80b0d3d959903">00057</a>     <span class="keyword">typedef</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">XPathExecutionContext::BorrowReturnMutableNodeRefList</a>   <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">BorrowReturnMutableNodeRefList</a>;
<a name="l00058"></a><a class="code" href="classXObjectFactory.html#a1a6a8e6b9345d58c2bcbdfa5f95e8e10">00058</a>     <span class="keyword">typedef</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">XPathExecutionContext::GetCachedString</a>                  <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>;
<a name="l00059"></a><a class="code" href="classXObjectFactory.html#ada0b883bccf252184788aadb04de708a">00059</a>     <span class="keyword">typedef</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">XPathExecutionContext::GetCachedString</a>                  <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetAndReleaseCachedString</a>;
<a name="l00060"></a>00060 
<a name="l00061"></a>00061 
<a name="l00062"></a>00062     <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>(MemoryManager&amp;   theManager);
<a name="l00063"></a>00063 
<a name="l00064"></a>00064     <span class="keyword">virtual</span>
<a name="l00065"></a>00065     ~<a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>();
<a name="l00066"></a>00066 
<a name="l00067"></a>00067 
<a name="l00068"></a>00068     MemoryManager&amp;
<a name="l00069"></a><a class="code" href="classXObjectFactory.html#ac99515200ba01f4692cf760551d21b58">00069</a>     getMemoryManager()
<a name="l00070"></a>00070     {
<a name="l00071"></a>00071         <span class="keywordflow">return</span> m_memoryManager;
<a name="l00072"></a>00072     }
<a name="l00073"></a>00073 <span class="comment"></span>
<a name="l00074"></a>00074 <span class="comment">    /**</span>
<a name="l00075"></a>00075 <span class="comment">     * Return an XObject to the factory.</span>
<a name="l00076"></a>00076 <span class="comment">     * </span>
<a name="l00077"></a>00077 <span class="comment">     * @param theXObject The XObject to be returned</span>
<a name="l00078"></a>00078 <span class="comment">     * @return true if the object belongs to the factory, false if not.</span>
<a name="l00079"></a>00079 <span class="comment">     */</span>
<a name="l00080"></a>00080     <span class="keywordtype">bool</span>
<a name="l00081"></a><a class="code" href="classXObjectFactory.html#a9c2df336743433cbb6af972bd7836385">00081</a>     returnObject(<a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>*   theXObject)
<a name="l00082"></a>00082     {
<a name="l00083"></a>00083         <span class="keywordflow">return</span> doReturnObject(theXObject);
<a name="l00084"></a>00084     }
<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">     * Reset the instance.  This invalidates all existing instances created</span>
<a name="l00088"></a>00088 <span class="comment">     * with this XObjectFactory.</span>
<a name="l00089"></a>00089 <span class="comment">     */</span>
<a name="l00090"></a>00090     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00091"></a>00091     reset() = 0;
<a name="l00092"></a>00092 <span class="comment"></span>
<a name="l00093"></a>00093 <span class="comment">    /**</span>
<a name="l00094"></a>00094 <span class="comment">     * Create a boolean XObject from a boolean value.</span>
<a name="l00095"></a>00095 <span class="comment">     * </span>
<a name="l00096"></a>00096 <span class="comment">     * @param theValue  value used to create object  </span>
<a name="l00097"></a>00097 <span class="comment">     * @return pointer to new object</span>
<a name="l00098"></a>00098 <span class="comment">     */</span>
<a name="l00099"></a>00099     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00100"></a>00100     createBoolean(<span class="keywordtype">bool</span>  theValue) = 0;
<a name="l00101"></a>00101 <span class="comment"></span>
<a name="l00102"></a>00102 <span class="comment">    /**</span>
<a name="l00103"></a>00103 <span class="comment">     * Create a node set XObject from a node list.</span>
<a name="l00104"></a>00104 <span class="comment">     * </span>
<a name="l00105"></a>00105 <span class="comment">     * @param theValue  value used to create object.  theValue will be owned by the new XObject.</span>
<a name="l00106"></a>00106 <span class="comment">     * @return pointer to new object</span>
<a name="l00107"></a>00107 <span class="comment">     */</span>
<a name="l00108"></a>00108     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00109"></a>00109     createNodeSet(BorrowReturnMutableNodeRefList&amp;   theValue) = 0;
<a name="l00110"></a>00110 <span class="comment"></span>
<a name="l00111"></a>00111 <span class="comment">    /**</span>
<a name="l00112"></a>00112 <span class="comment">     * Create a node set XObject from a node.</span>
<a name="l00113"></a>00113 <span class="comment">     * </span>
<a name="l00114"></a>00114 <span class="comment">     * @param theNOde value used to create object.</span>
<a name="l00115"></a>00115 <span class="comment">     * @return pointer to new object</span>
<a name="l00116"></a>00116 <span class="comment">     */</span>
<a name="l00117"></a>00117     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00118"></a>00118     createNodeSet(<a class="code" href="classXalanNode.html">XalanNode</a>*    theValue) = 0;
<a name="l00119"></a>00119 <span class="comment"></span>
<a name="l00120"></a>00120 <span class="comment">    /**</span>
<a name="l00121"></a>00121 <span class="comment">     * Create a numeric XObject from a number.</span>
<a name="l00122"></a>00122 <span class="comment">     * </span>
<a name="l00123"></a>00123 <span class="comment">     * @param theValue  value used to create object </span>
<a name="l00124"></a>00124 <span class="comment">     * @return pointer to new object</span>
<a name="l00125"></a>00125 <span class="comment">     */</span>
<a name="l00126"></a>00126     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00127"></a>00127     createNumber(<span class="keywordtype">double</span>     theValue) = 0;
<a name="l00128"></a>00128 <span class="comment"></span>
<a name="l00129"></a>00129 <span class="comment">    /**</span>
<a name="l00130"></a>00130 <span class="comment">     * Create a numeric XObject from an XToken.  The XToken</span>
<a name="l00131"></a>00131 <span class="comment">     * instance must be inexistence for the lifetime of the</span>
<a name="l00132"></a>00132 <span class="comment">     * object.</span>
<a name="l00133"></a>00133 <span class="comment">     *</span>
<a name="l00134"></a>00134 <span class="comment">     * @param theValue  value used to create object </span>
<a name="l00135"></a>00135 <span class="comment">     * @return pointer to new object</span>
<a name="l00136"></a>00136 <span class="comment">     */</span>
<a name="l00137"></a>00137     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00138"></a>00138     createNumber(<span class="keyword">const</span> <a class="code" href="classXToken.html">XToken</a>&amp;  theValue) = 0;
<a name="l00139"></a>00139 <span class="comment"></span>
<a name="l00140"></a>00140 <span class="comment">    /**</span>
<a name="l00141"></a>00141 <span class="comment">     * Create a string XObject from a string.</span>
<a name="l00142"></a>00142 <span class="comment">     * </span>
<a name="l00143"></a>00143 <span class="comment">     * @param theValue  value used to create object  </span>
<a name="l00144"></a>00144 <span class="comment">     * @return pointer to new object</span>
<a name="l00145"></a>00145 <span class="comment">     */</span>
<a name="l00146"></a>00146     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00147"></a>00147     createString(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;  theValue) = 0;
<a name="l00148"></a>00148 <span class="comment"></span>
<a name="l00149"></a>00149 <span class="comment">    /**</span>
<a name="l00150"></a>00150 <span class="comment">     * Create a string XObject from a null-terminated array of characters.</span>
<a name="l00151"></a>00151 <span class="comment">     * </span>
<a name="l00152"></a>00152 <span class="comment">     * @param theValue  a pointer to the array</span>
<a name="l00153"></a>00153 <span class="comment">     * @return pointer to new object</span>
<a name="l00154"></a>00154 <span class="comment">     */</span>
<a name="l00155"></a>00155     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00156"></a>00156     createString(<span class="keyword">const</span> XalanDOMChar*    theValue) = 0;
<a name="l00157"></a>00157 <span class="comment"></span>
<a name="l00158"></a>00158 <span class="comment">    /**</span>
<a name="l00159"></a>00159 <span class="comment">     * Create a string XObject from an array of characters.</span>
<a name="l00160"></a>00160 <span class="comment">     * </span>
<a name="l00161"></a>00161 <span class="comment">     * @param theValue  a pointer to the array</span>
<a name="l00162"></a>00162 <span class="comment">     * @paran theLength the length of the array</span>
<a name="l00163"></a>00163 <span class="comment">     * @return pointer to new object</span>
<a name="l00164"></a>00164 <span class="comment">     */</span>
<a name="l00165"></a>00165     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00166"></a>00166     createString(
<a name="l00167"></a>00167             <span class="keyword">const</span> XalanDOMChar*     theValue,
<a name="l00168"></a>00168             XalanSize_t             theLength) = 0;
<a name="l00169"></a>00169 <span class="comment"></span>
<a name="l00170"></a>00170 <span class="comment">    /**</span>
<a name="l00171"></a>00171 <span class="comment">     * Create a string XObject from an XToken.  The XToken</span>
<a name="l00172"></a>00172 <span class="comment">     * instance must be inexistence for the lifetime of the</span>
<a name="l00173"></a>00173 <span class="comment">     * object.</span>
<a name="l00174"></a>00174 <span class="comment">     *</span>
<a name="l00175"></a>00175 <span class="comment">     * @param theValue  value used to create object </span>
<a name="l00176"></a>00176 <span class="comment">     * @return pointer to new object</span>
<a name="l00177"></a>00177 <span class="comment">     */</span>
<a name="l00178"></a>00178     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00179"></a>00179     createString(<span class="keyword">const</span> <a class="code" href="classXToken.html">XToken</a>&amp;  theValue) = 0;
<a name="l00180"></a>00180 <span class="comment"></span>
<a name="l00181"></a>00181 <span class="comment">    /**</span>
<a name="l00182"></a>00182 <span class="comment">     * Create a string XObject from a string.  The XObject</span>
<a name="l00183"></a>00183 <span class="comment">     * will hold a reference to the supplied string, so</span>
<a name="l00184"></a>00184 <span class="comment">     * the string must be in scope for the lifetime of</span>
<a name="l00185"></a>00185 <span class="comment">     * the instance</span>
<a name="l00186"></a>00186 <span class="comment">     *</span>
<a name="l00187"></a>00187 <span class="comment">     * @param theValue  value used to create object  </span>
<a name="l00188"></a>00188 <span class="comment">     * @return pointer to new object</span>
<a name="l00189"></a>00189 <span class="comment">     */</span>
<a name="l00190"></a>00190     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00191"></a>00191     createStringReference(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;     theValue) = 0;
<a name="l00192"></a>00192 <span class="comment"></span>
<a name="l00193"></a>00193 <span class="comment">    /**</span>
<a name="l00194"></a>00194 <span class="comment">     * Create a string XObject that will adapt another XObject to</span>
<a name="l00195"></a>00195 <span class="comment">     * behave like a string.  The XObject holds a reference to the</span>
<a name="l00196"></a>00196 <span class="comment">     * other XObject.</span>
<a name="l00197"></a>00197 <span class="comment">     *</span>
<a name="l00198"></a>00198 <span class="comment">     * @param theValue  value used to create object</span>
<a name="l00199"></a>00199 <span class="comment">     * @paran theExecutionContext The current execution context</span>
<a name="l00200"></a>00200 <span class="comment">     * @return pointer to new object</span>
<a name="l00201"></a>00201 <span class="comment">     */</span>
<a name="l00202"></a>00202     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00203"></a>00203     createStringAdapter(
<a name="l00204"></a>00204             <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>&amp;       theValue,
<a name="l00205"></a>00205             <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;  theExecutionContext) = 0;
<a name="l00206"></a>00206 <span class="comment"></span>
<a name="l00207"></a>00207 <span class="comment">    /**</span>
<a name="l00208"></a>00208 <span class="comment">     * Create a string XObject from a cached XalanDOMString,</span>
<a name="l00209"></a>00209 <span class="comment">     *</span>
<a name="l00210"></a>00210 <span class="comment">     * @param theValue  value used to create object  </span>
<a name="l00211"></a>00211 <span class="comment">     * @return pointer to new object</span>
<a name="l00212"></a>00212 <span class="comment">     */</span>
<a name="l00213"></a>00213     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00214"></a>00214     createString(GetCachedString&amp;   theValue) = 0;
<a name="l00215"></a>00215 <span class="comment"></span>
<a name="l00216"></a>00216 <span class="comment">    /**</span>
<a name="l00217"></a>00217 <span class="comment">     * Create an &quot;unknown&quot; XObject from a string.</span>
<a name="l00218"></a>00218 <span class="comment">     * </span>
<a name="l00219"></a>00219 <span class="comment">     * @param theValue  value used to create object  </span>
<a name="l00220"></a>00220 <span class="comment">     * @return pointer to new object</span>
<a name="l00221"></a>00221 <span class="comment">     */</span>
<a name="l00222"></a>00222     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00223"></a>00223     createUnknown(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;     theValue) = 0;
<a name="l00224"></a>00224 <span class="comment"></span>
<a name="l00225"></a>00225 <span class="comment">    /**</span>
<a name="l00226"></a>00226 <span class="comment">     * Hold a reference to an XObject instance until the</span>
<a name="l00227"></a>00227 <span class="comment">     * factory is reset. This is needed in a very few cases</span>
<a name="l00228"></a>00228 <span class="comment">     * when the object lifetime needs to extend after the</span>
<a name="l00229"></a>00229 <span class="comment">     * execution of an XPath expression.</span>
<a name="l00230"></a>00230 <span class="comment">     * </span>
<a name="l00231"></a>00231 <span class="comment">     * @param theValue  The XObjectPtr instance.</span>
<a name="l00232"></a>00232 <span class="comment">     */</span>
<a name="l00233"></a>00233     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00234"></a>00234     holdReference(<a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>    theValue) = 0;
<a name="l00235"></a>00235 <span class="comment"></span>
<a name="l00236"></a>00236 <span class="comment">    /**</span>
<a name="l00237"></a>00237 <span class="comment">     *</span>
<a name="l00238"></a>00238 <span class="comment">     * A public functor for use with stl algorithms.</span>
<a name="l00239"></a>00239 <span class="comment">     *</span>
<a name="l00240"></a>00240 <span class="comment">     */</span>
<a name="l00241"></a>00241 <span class="preprocessor">#if defined(XALAN_NO_STD_NAMESPACE)</span>
<a name="l00242"></a>00242 <span class="preprocessor"></span>    <span class="keyword">struct </span>DeleteXObjectFunctor : <span class="keyword">public</span> <a class="code" href="classstd_1_1unary__function.html">unary_function</a>&lt;XObject*, void&gt;
<a name="l00243"></a>00243 <span class="preprocessor">#else</span>
<a name="l00244"></a><a class="code" href="structXObjectFactory_1_1DeleteXObjectFunctor.html">00244</a> <span class="preprocessor"></span>    struct <a class="code" href="structXObjectFactory_1_1DeleteXObjectFunctor.html" title="A public functor for use with stl algorithms.">DeleteXObjectFunctor</a> : <span class="keyword">public</span> std::<a class="code" href="classstd_1_1unary__function.html">unary_function</a>&lt;XObject*, bool&gt;
<a name="l00245"></a>00245 <span class="preprocessor">#endif</span>
<a name="l00246"></a>00246 <span class="preprocessor"></span>    {
<a name="l00247"></a>00247     <span class="keyword">public</span>:
<a name="l00248"></a>00248 
<a name="l00249"></a><a class="code" href="structXObjectFactory_1_1DeleteXObjectFunctor.html#a055597ab24c09d4ef9b6b19c4e86795e">00249</a>         <a class="code" href="structXObjectFactory_1_1DeleteXObjectFunctor.html" title="A public functor for use with stl algorithms.">DeleteXObjectFunctor</a>(
<a name="l00250"></a>00250             <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>&amp;     theFactoryInstance,
<a name="l00251"></a>00251             <span class="keywordtype">bool</span>                fInReset = <span class="keyword">false</span>) :
<a name="l00252"></a>00252             m_factoryInstance(theFactoryInstance),
<a name="l00253"></a>00253             m_fInReset(fInReset)
<a name="l00254"></a>00254         {
<a name="l00255"></a>00255         }
<a name="l00256"></a>00256 
<a name="l00257"></a>00257         result_type
<a name="l00258"></a><a class="code" href="structXObjectFactory_1_1DeleteXObjectFunctor.html#a9859fc9fcccdd8d3c48ce015096eb06a">00258</a>         operator()(argument_type    theXObject)<span class="keyword"> const</span>
<a name="l00259"></a>00259 <span class="keyword">        </span>{
<a name="l00260"></a>00260             <span class="keywordflow">if</span> (m_fInReset == <span class="keyword">true</span>)
<a name="l00261"></a>00261             {
<a name="l00262"></a>00262                 <span class="keywordflow">return</span> m_factoryInstance.doReturnObject(
<a name="l00263"></a>00263                         theXObject,
<a name="l00264"></a>00264                         <span class="keyword">true</span>);
<a name="l00265"></a>00265             }
<a name="l00266"></a>00266             <span class="keywordflow">else</span>
<a name="l00267"></a>00267             {
<a name="l00268"></a>00268                 <span class="keywordflow">return</span> m_factoryInstance.returnObject(theXObject);
<a name="l00269"></a>00269             }
<a name="l00270"></a>00270         }
<a name="l00271"></a>00271 
<a name="l00272"></a>00272     <span class="keyword">private</span>:
<a name="l00273"></a>00273 
<a name="l00274"></a>00274         <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>&amp;     m_factoryInstance;
<a name="l00275"></a>00275 
<a name="l00276"></a>00276         <span class="keyword">const</span> <span class="keywordtype">bool</span>          m_fInReset;
<a name="l00277"></a>00277     };
<a name="l00278"></a>00278 
<a name="l00279"></a><a class="code" href="classXObjectFactory.html#af18d668077814879ccdddb7ae6ed02e4">00279</a>     <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structXObjectFactory_1_1DeleteXObjectFunctor.html" title="A public functor for use with stl algorithms.">DeleteXObjectFunctor</a>;
<a name="l00280"></a>00280 
<a name="l00281"></a>00281 <span class="keyword">protected</span>:
<a name="l00282"></a>00282 <span class="comment"></span>
<a name="l00283"></a>00283 <span class="comment">    /**</span>
<a name="l00284"></a>00284 <span class="comment">     * Return the actual implementation type of an XObject.</span>
<a name="l00285"></a>00285 <span class="comment">     *</span>
<a name="l00286"></a>00286 <span class="comment">     * @param theXObject the XObject</span>
<a name="l00287"></a>00287 <span class="comment">     */</span>
<a name="l00288"></a>00288     <a class="code" href="classXObject.html#a05d141ef03891c9d8d6a44633c02556c" title="Enumeration of possible object types.">XObject::eObjectType</a>
<a name="l00289"></a><a class="code" href="classXObjectFactory.html#a5088c1b58e60c633ed4a6f69ffb7e20e">00289</a>     getRealType(<span class="keyword">const</span> <a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>&amp;  theXObject)<span class="keyword"> const</span>
<a name="l00290"></a>00290 <span class="keyword">    </span>{
<a name="l00291"></a>00291         <span class="keywordflow">return</span> theXObject.<a class="code" href="classXObject.html#aeb9785fb683cc91467423ffd5108cea3" title="Tell what kind of class this is.">getRealType</a>();
<a name="l00292"></a>00292     }
<a name="l00293"></a>00293 <span class="comment"></span>
<a name="l00294"></a>00294 <span class="comment">    /**</span>
<a name="l00295"></a>00295 <span class="comment">     * Delete a FactoryObject instance.</span>
<a name="l00296"></a>00296 <span class="comment">     *</span>
<a name="l00297"></a>00297 <span class="comment">     * @param theXObject the XObject instance to delete.</span>
<a name="l00298"></a>00298 <span class="comment">     */</span>
<a name="l00299"></a>00299     <span class="keywordtype">void</span>
<a name="l00300"></a><a class="code" href="classXObjectFactory.html#add3a3d8a972249362e13163b3e9a9901">00300</a>     deleteObject(<span class="keyword">const</span> <a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>*     theXObject)<span class="keyword"> const</span>
<a name="l00301"></a>00301 <span class="keyword">    </span>{
<a name="l00302"></a>00302         <span class="keywordflow">if</span>( theXObject!= 0)
<a name="l00303"></a>00303         {
<a name="l00304"></a>00304             <a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>* <span class="keyword">const</span>  nonConst =
<a name="l00305"></a>00305                 <span class="keyword">const_cast&lt;</span><a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>*<span class="keyword">&gt;</span>(theXObject);
<a name="l00306"></a>00306 
<a name="l00307"></a>00307             nonConst-&gt;<a class="code" href="classXObject.html#a891192058b920fdac8a90448c03e1871">~XObject</a>();
<a name="l00308"></a>00308 
<a name="l00309"></a>00309             m_memoryManager.deallocate(nonConst);
<a name="l00310"></a>00310         }
<a name="l00311"></a>00311     }
<a name="l00312"></a>00312 <span class="comment"></span>
<a name="l00313"></a>00313 <span class="comment">    /**</span>
<a name="l00314"></a>00314 <span class="comment">     * Return an XObject to the factory.</span>
<a name="l00315"></a>00315 <span class="comment">     * </span>
<a name="l00316"></a>00316 <span class="comment">     * @param theXObject XObject to be returned</span>
<a name="l00317"></a>00317 <span class="comment">     * @param fInReset true when called during reset().</span>
<a name="l00318"></a>00318 <span class="comment">     */</span>
<a name="l00319"></a>00319 
<a name="l00320"></a>00320     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00321"></a>00321     doReturnObject(
<a name="l00322"></a>00322             <a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>*    theXObject,
<a name="l00323"></a>00323             <span class="keywordtype">bool</span>        fInReset = <span class="keyword">false</span>) = 0;
<a name="l00324"></a>00324 
<a name="l00325"></a>00325 <span class="keyword">private</span>:
<a name="l00326"></a>00326 
<a name="l00327"></a>00327     <span class="comment">// Not implemented...</span>
<a name="l00328"></a>00328     <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>(<span class="keyword">const</span> <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>&amp;);
<a name="l00329"></a>00329 
<a name="l00330"></a>00330     <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>&amp;
<a name="l00331"></a>00331     operator=(<span class="keyword">const</span> <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>&amp;);
<a name="l00332"></a>00332 
<a name="l00333"></a>00333     <span class="keywordtype">bool</span>
<a name="l00334"></a>00334     <a class="code" href="ElemAttributeSet_8hpp.html#ae199bc16afddda1065706543e752d292">operator==</a>(<span class="keyword">const</span> <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>&amp;) <span class="keyword">const</span>;
<a name="l00335"></a>00335 
<a name="l00336"></a>00336     MemoryManager&amp;  m_memoryManager;
<a name="l00337"></a>00337 };
<a name="l00338"></a>00338 
<a name="l00339"></a>00339 
<a name="l00340"></a>00340 
<a name="l00341"></a>00341 XALAN_CPP_NAMESPACE_END
<a name="l00342"></a>00342 
<a name="l00343"></a>00343 
<a name="l00344"></a>00344 
<a name="l00345"></a>00345 <span class="preprocessor">#endif  // XOBJECTFACTORY_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>
