<!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>XPathEnvSupportDefault.hpp</h1>  </div>
</div>
<div class="contents">
<a href="XPathEnvSupportDefault_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(XPATHENVSUPPORTDEFAULT_HEADER_GUARD_1357924680)</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define XPATHENVSUPPORTDEFAULT_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 <span class="preprocessor">#include &lt;<a class="code" href="XPathEnvSupport_8hpp.html">xalanc/XPath/XPathEnvSupport.hpp</a>&gt;</span>
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="preprocessor">#include&lt;<a class="code" href="DOMStringHelper_8hpp.html">xalanc/PlatformSupport/DOMStringHelper.hpp</a>&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="preprocessor">#include&lt;<a class="code" href="XalanMap_8hpp.html">xalanc/Include/XalanMap.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><a class="code" href="XPathEnvSupportDefault_8hpp.html#ad3d6d153275425e1b3a46094c738ea5d">00041</a> <span class="keyword">typedef</span> <a class="code" href="classXalanMap.html" title="Xalan implementation of a hashtable.">XalanMap&lt;XalanDOMString, const Function*&gt;</a>   <a class="code" href="XPathEnvSupportDefault_8hpp.html#ad3d6d153275425e1b3a46094c738ea5d">FunctionTableTypeDefinition</a>;
<a name="l00042"></a><a class="code" href="structMemoryManagedConstructionTraits_3_01FunctionTableTypeDefinition_01_4.html#a08017ebcdfa8b208bf8e290ad5f269f1">00042</a> <a class="code" href="XalanMemoryManagement_8hpp.html#afe156dfb53fca069b4707b01bcfc1d0d">XALAN_USES_MEMORY_MANAGER</a>(<a class="code" href="XPathEnvSupportDefault_8hpp.html#ad3d6d153275425e1b3a46094c738ea5d">FunctionTableTypeDefinition</a>)
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 
<a name="l00046"></a><a class="code" href="classXPathEnvSupportDefault.html">00046</a> class <a class="code" href="XPathDefinitions_8hpp.html#aa9c15f77ef5ab2dc518733b0fd07c141">XALAN_XPATH_EXPORT</a> <a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a> : public <a class="code" href="classXPathEnvSupport.html">XPathEnvSupport</a>
<a name="l00047"></a>00047 {
<a name="l00048"></a>00048 <span class="keyword">public</span>:
<a name="l00049"></a>00049 
<a name="l00050"></a><a class="code" href="classXPathEnvSupportDefault.html#a73cf0182faf5880f16c9caa1e4531029">00050</a>     <span class="keyword">typedef</span> <a class="code" href="classXalanMap.html">XalanMap&lt;XalanDOMString, XalanDocument*&gt;</a>    <a class="code" href="classXalanMap.html">SourceDocsTableType</a>;
<a name="l00051"></a><a class="code" href="classXPathEnvSupportDefault.html#aada237715011291f2ed7b67d25cd0296">00051</a>     <span class="keyword">typedef</span> <a class="code" href="XPathEnvSupportDefault_8hpp.html#ad3d6d153275425e1b3a46094c738ea5d">FunctionTableTypeDefinition</a>                 FunctionTableType;
<a name="l00052"></a><a class="code" href="classXPathEnvSupportDefault.html#aad6a6c7c58dec2e37a3d469c5d850334">00052</a>     <span class="keyword">typedef</span> <a class="code" href="classXalanMap.html">XalanMap&lt;XalanDOMString, FunctionTableType&gt;</a> <a class="code" href="classXalanMap.html">NamespaceFunctionTablesType</a>;
<a name="l00053"></a>00053 <span class="comment"></span>
<a name="l00054"></a>00054 <span class="comment">    /**</span>
<a name="l00055"></a>00055 <span class="comment">     * Perform initialization of statics -- must be called before any</span>
<a name="l00056"></a>00056 <span class="comment">     * processing occurs.  See class XPathInit.</span>
<a name="l00057"></a>00057 <span class="comment">     */</span>
<a name="l00058"></a>00058     <span class="keyword">static</span> <span class="keywordtype">void</span>
<a name="l00059"></a>00059     initialize(MemoryManager&amp;   theManager);
<a name="l00060"></a>00060 <span class="comment"></span>
<a name="l00061"></a>00061 <span class="comment">    /**</span>
<a name="l00062"></a>00062 <span class="comment">     * Perform termination of statics.  See class XPathInit.</span>
<a name="l00063"></a>00063 <span class="comment">     */</span>
<a name="l00064"></a>00064     <span class="keyword">static</span> <span class="keywordtype">void</span>
<a name="l00065"></a>00065     <a class="code" href="XalanDOMString_8hpp.html#a392a1168a4c055ef750608dde287a874">terminate</a>();
<a name="l00066"></a>00066 
<a name="l00067"></a>00067 
<a name="l00068"></a>00068     <a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a>(MemoryManager&amp;   theManager <a class="code" href="XalanMemoryManagement_8hpp.html#ab9a9939dbc66ffc6dd9e2e2dcee1b15c">XALAN_DEFAULT_MEMMGR</a>);
<a name="l00069"></a>00069 
<a name="l00070"></a>00070     <span class="keyword">virtual</span>
<a name="l00071"></a>00071     ~<a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a>();
<a name="l00072"></a>00072 
<a name="l00073"></a>00073     MemoryManager&amp; 
<a name="l00074"></a><a class="code" href="classXPathEnvSupportDefault.html#a6f080710fc8a84d439e240e8e07d08c1">00074</a>     getMemoryManager()<span class="keyword"> const</span>
<a name="l00075"></a>00075 <span class="keyword">    </span>{
<a name="l00076"></a>00076         <span class="keywordflow">return</span> m_memoryManager;
<a name="l00077"></a>00077     }
<a name="l00078"></a>00078 
<a name="l00079"></a>00079     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00080"></a>00080     setPrintWriter(<a class="code" href="classPrintWriter.html">PrintWriter</a>*     pw);
<a name="l00081"></a>00081 
<a name="l00082"></a>00082     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00083"></a>00083     problem(
<a name="l00084"></a>00084             eSource                 source,
<a name="l00085"></a>00085             eClassification         classification,
<a name="l00086"></a>00086             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   msg,
<a name="l00087"></a>00087             <span class="keyword">const</span> Locator*          locator,
<a name="l00088"></a>00088             <span class="keyword">const</span> <a class="code" href="classXalanNode.html">XalanNode</a>*        sourceNode);
<a name="l00089"></a>00089 
<a name="l00090"></a>00090     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00091"></a>00091     problem(
<a name="l00092"></a>00092             eSource                 source,
<a name="l00093"></a>00093             eClassification         classification,
<a name="l00094"></a>00094             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   msg,
<a name="l00095"></a>00095             <span class="keyword">const</span> <a class="code" href="classXalanNode.html">XalanNode</a>*        sourceNode);
<a name="l00096"></a>00096 
<a name="l00097"></a>00097     <span class="comment">// Interfaces to install and uninstall external functions globally.</span>
<a name="l00098"></a>00098     <span class="comment">// These calls are not thread-safe, and should happen during</span>
<a name="l00099"></a>00099     <span class="comment">// processing.</span>
<a name="l00100"></a>00100 <span class="comment"></span>
<a name="l00101"></a>00101 <span class="comment">    /**</span>
<a name="l00102"></a>00102 <span class="comment">     * Install an external function in the global space.</span>
<a name="l00103"></a>00103 <span class="comment">     *</span>
<a name="l00104"></a>00104 <span class="comment">     * @param theNamespace The namespace for the functionl</span>
<a name="l00105"></a>00105 <span class="comment">     * @param functionName The name of the function.</span>
<a name="l00106"></a>00106 <span class="comment">     * @param function The function to install.</span>
<a name="l00107"></a>00107 <span class="comment">     */</span>
<a name="l00108"></a>00108     <span class="keyword">static</span> <span class="keywordtype">void</span>
<a name="l00109"></a>00109     installExternalFunctionGlobal(
<a name="l00110"></a>00110             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theNamespace,
<a name="l00111"></a>00111             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   functionName,
<a name="l00112"></a>00112             <span class="keyword">const</span> <a class="code" href="classFunction.html">Function</a>&amp;         function);
<a name="l00113"></a>00113 <span class="comment"></span>
<a name="l00114"></a>00114 <span class="comment">    /**</span>
<a name="l00115"></a>00115 <span class="comment">     * Uninstall an external function from the global space.</span>
<a name="l00116"></a>00116 <span class="comment">     *</span>
<a name="l00117"></a>00117 <span class="comment">     * @param theNamespace The namespace for the functionl</span>
<a name="l00118"></a>00118 <span class="comment">     * @param functionName The name of the function.</span>
<a name="l00119"></a>00119 <span class="comment">     */</span>
<a name="l00120"></a>00120     <span class="keyword">static</span> <span class="keywordtype">void</span>
<a name="l00121"></a>00121     uninstallExternalFunctionGlobal(
<a name="l00122"></a>00122             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theNamespace,
<a name="l00123"></a>00123             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   functionName);
<a name="l00124"></a>00124 
<a name="l00125"></a>00125     <span class="comment">// Interfaces to install and uninstall external functions in this instance.</span>
<a name="l00126"></a>00126 <span class="comment"></span>
<a name="l00127"></a>00127 <span class="comment">    /**</span>
<a name="l00128"></a>00128 <span class="comment">     * Install an external function in the local space.</span>
<a name="l00129"></a>00129 <span class="comment">     *</span>
<a name="l00130"></a>00130 <span class="comment">     * @param theNamespace The namespace for the functionl</span>
<a name="l00131"></a>00131 <span class="comment">     * @param functionName The name of the function.</span>
<a name="l00132"></a>00132 <span class="comment">     * @param function The function to install.</span>
<a name="l00133"></a>00133 <span class="comment">     */</span>
<a name="l00134"></a>00134     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00135"></a>00135     installExternalFunctionLocal(
<a name="l00136"></a>00136             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theNamespace,
<a name="l00137"></a>00137             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   functionName,
<a name="l00138"></a>00138             <span class="keyword">const</span> <a class="code" href="classFunction.html">Function</a>&amp;         function);
<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">     * Uninstall an external function from the local space.</span>
<a name="l00142"></a>00142 <span class="comment">     *</span>
<a name="l00143"></a>00143 <span class="comment">     * @param theNamespace The namespace for the functionl</span>
<a name="l00144"></a>00144 <span class="comment">     * @param functionName The name of the function.</span>
<a name="l00145"></a>00145 <span class="comment">     */</span>
<a name="l00146"></a>00146     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00147"></a>00147     uninstallExternalFunctionLocal(
<a name="l00148"></a>00148             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theNamespace,
<a name="l00149"></a>00149             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   functionName);
<a name="l00150"></a>00150 
<a name="l00151"></a>00151 
<a name="l00152"></a>00152     <span class="comment">// These interfaces are inherited from XPathEnvSupport...</span>
<a name="l00153"></a>00153 
<a name="l00154"></a>00154     <span class="keyword">virtual</span> <a class="code" href="classXalanDocument.html">XalanDocument</a>*
<a name="l00155"></a>00155     parseXML(
<a name="l00156"></a>00156             MemoryManager&amp;      theManager,
<a name="l00157"></a>00157             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   urlString,
<a name="l00158"></a>00158             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   base,
<a name="l00159"></a>00159             ErrorHandler*           theErrorHandler = 0);
<a name="l00160"></a>00160 
<a name="l00161"></a>00161     <span class="keyword">virtual</span> <a class="code" href="classXalanDocument.html">XalanDocument</a>*
<a name="l00162"></a>00162     getSourceDocument(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theURI) <span class="keyword">const</span>;
<a name="l00163"></a>00163 
<a name="l00164"></a>00164     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00165"></a>00165     setSourceDocument(
<a name="l00166"></a>00166             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theURI,
<a name="l00167"></a>00167             <a class="code" href="classXalanDocument.html">XalanDocument</a>*          theDocument);
<a name="l00168"></a>00168 
<a name="l00169"></a>00169     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00170"></a>00170     findURIFromDoc(<span class="keyword">const</span> <a class="code" href="classXalanDocument.html">XalanDocument</a>*     owner) <span class="keyword">const</span>;
<a name="l00171"></a>00171 
<a name="l00172"></a>00172     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00173"></a>00173     elementAvailable(
<a name="l00174"></a>00174             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theNamespace, 
<a name="l00175"></a>00175             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   elementName) <span class="keyword">const</span>;
<a name="l00176"></a>00176 
<a name="l00177"></a>00177     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00178"></a>00178     functionAvailable(
<a name="l00179"></a>00179             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theNamespace, 
<a name="l00180"></a>00180             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   functionName) <span class="keyword">const</span>;
<a name="l00181"></a>00181 
<a name="l00182"></a>00182     <span class="keyword">virtual</span> <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>
<a name="l00183"></a>00183     extFunction(
<a name="l00184"></a>00184             <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;          executionContext,
<a name="l00185"></a>00185             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;           theNamespace,
<a name="l00186"></a>00186             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;           functionName, 
<a name="l00187"></a>00187             <a class="code" href="classXalanNode.html">XalanNode</a>*                      context,
<a name="l00188"></a>00188             <span class="keyword">const</span> XObjectArgVectorType&amp;     argVec,
<a name="l00189"></a>00189             <span class="keyword">const</span> Locator*                  locator) <span class="keyword">const</span>;
<a name="l00190"></a>00190 
<a name="l00191"></a>00191     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00192"></a>00192     reset();
<a name="l00193"></a>00193 
<a name="l00194"></a>00194     <span class="comment">// Delete functor for table cleanup...</span>
<a name="l00195"></a><a class="code" href="structXPathEnvSupportDefault_1_1NamespaceFunctionTableDeleteFunctor.html">00195</a>     <span class="keyword">struct </span><a class="code" href="structXPathEnvSupportDefault_1_1NamespaceFunctionTableDeleteFunctor.html">NamespaceFunctionTableDeleteFunctor</a>
<a name="l00196"></a>00196     {
<a name="l00197"></a><a class="code" href="structXPathEnvSupportDefault_1_1NamespaceFunctionTableDeleteFunctor.html#aabe23699516781edc1dc955feaa2079d">00197</a>         <span class="keyword">typedef</span> FunctionTableType               FunctionTableInnerType;
<a name="l00198"></a><a class="code" href="structXPathEnvSupportDefault_1_1NamespaceFunctionTableDeleteFunctor.html#a421d51fdf8aa9c1a4f7aff76f33239e8">00198</a>         <span class="keyword">typedef</span> NamespaceFunctionTablesType     <a class="code" href="classXalanMap.html">NamespaceFunctionTablesInnerType</a>;
<a name="l00199"></a>00199 
<a name="l00200"></a>00200         <a class="code" href="structXPathEnvSupportDefault_1_1NamespaceFunctionTableDeleteFunctor.html">NamespaceFunctionTableDeleteFunctor</a>(MemoryManager&amp;  theManager);<span class="comment"></span>
<a name="l00201"></a>00201 <span class="comment">        /**</span>
<a name="l00202"></a>00202 <span class="comment">         * Delete the value object in a map value pair.  The value of the pair must</span>
<a name="l00203"></a>00203 <span class="comment">         * be of pointer type.</span>
<a name="l00204"></a>00204 <span class="comment">         *</span>
<a name="l00205"></a>00205 <span class="comment">         * @param thePair key-value pair</span>
<a name="l00206"></a>00206 <span class="comment">         */</span>
<a name="l00207"></a>00207         <span class="keywordtype">void</span>
<a name="l00208"></a>00208         operator()(<span class="keyword">const</span> <a class="code" href="classXalanMap.html#a7fcd30484dfafafdc7e2979162d4aa98">NamespaceFunctionTablesInnerType::value_type</a>&amp;  thePair) <span class="keyword">const</span>;
<a name="l00209"></a>00209 
<a name="l00210"></a>00210     <span class="keyword">private</span>:
<a name="l00211"></a>00211 
<a name="l00212"></a>00212         MemoryManager&amp;  m_memoryManager;
<a name="l00213"></a>00213     };
<a name="l00214"></a>00214 
<a name="l00215"></a>00215 <span class="keyword">protected</span>:
<a name="l00216"></a>00216 <span class="comment"></span>
<a name="l00217"></a>00217 <span class="comment">    /**</span>
<a name="l00218"></a>00218 <span class="comment">     * Find an external function.</span>
<a name="l00219"></a>00219 <span class="comment">     *</span>
<a name="l00220"></a>00220 <span class="comment">     * @param theNamespace The namespace for the function.</span>
<a name="l00221"></a>00221 <span class="comment">     * @param functionName The name of the function.</span>
<a name="l00222"></a>00222 <span class="comment">     * @return a pointer to the function if found, or 0 if not found.</span>
<a name="l00223"></a>00223 <span class="comment">     */</span>
<a name="l00224"></a>00224     <span class="keyword">const</span> <a class="code" href="classFunction.html">Function</a>*
<a name="l00225"></a>00225     findFunction(
<a name="l00226"></a>00226             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theNamespace,
<a name="l00227"></a>00227             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   functionName) <span class="keyword">const</span>;
<a name="l00228"></a>00228 
<a name="l00229"></a>00229 <span class="keyword">private</span>:
<a name="l00230"></a>00230 
<a name="l00231"></a>00231     <span class="comment">// These are not implemented...</span>
<a name="l00232"></a>00232     <a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a>(<span class="keyword">const</span> <a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a>&amp;);
<a name="l00233"></a>00233 
<a name="l00234"></a>00234     <a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a>&amp;
<a name="l00235"></a>00235     operator=(<span class="keyword">const</span> <a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a>&amp;);
<a name="l00236"></a>00236 
<a name="l00237"></a>00237     <span class="keywordtype">bool</span>
<a name="l00238"></a>00238     <a class="code" href="ElemAttributeSet_8hpp.html#ae199bc16afddda1065706543e752d292">operator==</a>(<span class="keyword">const</span> <a class="code" href="classXPathEnvSupportDefault.html">XPathEnvSupportDefault</a>&amp;) <span class="keyword">const</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="comment">     * Update the supplied function table.  If the parameter</span>
<a name="l00242"></a>00242 <span class="comment">     * function is 0, and a function with the supplied</span>
<a name="l00243"></a>00243 <span class="comment">     * namespace and name exists in the table, it will be</span>
<a name="l00244"></a>00244 <span class="comment">     * removed.  If function is not 0, and a function with</span>
<a name="l00245"></a>00245 <span class="comment">     * the supplied namespace and name exists in the table,</span>
<a name="l00246"></a>00246 <span class="comment">     * it will be replaced with the new function.  Otherwise,</span>
<a name="l00247"></a>00247 <span class="comment">     * the function will be added.</span>
<a name="l00248"></a>00248 <span class="comment">     *</span>
<a name="l00249"></a>00249 <span class="comment">     * @param theNamespace The namespace for the functionl</span>
<a name="l00250"></a>00250 <span class="comment">     * @param functionName The name of the function.</span>
<a name="l00251"></a>00251 <span class="comment">     * @param function The function to install.</span>
<a name="l00252"></a>00252 <span class="comment">     */</span>
<a name="l00253"></a>00253     <span class="keyword">static</span> <span class="keywordtype">void</span>
<a name="l00254"></a>00254     updateFunctionTable(
<a name="l00255"></a>00255             NamespaceFunctionTablesType&amp;    theTable,
<a name="l00256"></a>00256             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;           theNamespace,
<a name="l00257"></a>00257             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;           functionName,
<a name="l00258"></a>00258             <span class="keyword">const</span> <a class="code" href="classFunction.html">Function</a>*                 function);
<a name="l00259"></a>00259 <span class="comment"></span>
<a name="l00260"></a>00260 <span class="comment">    /**</span>
<a name="l00261"></a>00261 <span class="comment">     * Find an external function in the supplied table.</span>
<a name="l00262"></a>00262 <span class="comment">     *</span>
<a name="l00263"></a>00263 <span class="comment">     * @param theTable The table to search.</span>
<a name="l00264"></a>00264 <span class="comment">     * @param theNamespace The namespace for the function.</span>
<a name="l00265"></a>00265 <span class="comment">     * @param functionName The name of the function.</span>
<a name="l00266"></a>00266 <span class="comment">     * @return a pointer to the function if found, or 0 if not found.</span>
<a name="l00267"></a>00267 <span class="comment">     */</span>
<a name="l00268"></a>00268     <span class="keyword">const</span> <a class="code" href="classFunction.html">Function</a>*
<a name="l00269"></a>00269     findFunction(
<a name="l00270"></a>00270             <span class="keyword">const</span> NamespaceFunctionTablesType&amp;  theTable,
<a name="l00271"></a>00271             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;               theNamespace,
<a name="l00272"></a>00272             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;               functionName) <span class="keyword">const</span>;
<a name="l00273"></a>00273 
<a name="l00274"></a>00274     <span class="comment">// Data members...</span>
<a name="l00275"></a>00275 
<a name="l00276"></a>00276     SourceDocsTableType                     m_sourceDocs;
<a name="l00277"></a>00277 
<a name="l00278"></a>00278     NamespaceFunctionTablesType             m_externalFunctions;
<a name="l00279"></a>00279 
<a name="l00280"></a>00280     MemoryManager&amp;                          m_memoryManager;
<a name="l00281"></a>00281 
<a name="l00282"></a>00282     <a class="code" href="classPrintWriter.html">PrintWriter</a>*                            m_pw;
<a name="l00283"></a>00283 
<a name="l00284"></a>00284     <span class="keyword">static</span> NamespaceFunctionTablesType      s_externalFunctions;
<a name="l00285"></a>00285 
<a name="l00286"></a>00286     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>             s_emptyString;
<a name="l00287"></a>00287 };
<a name="l00288"></a>00288 
<a name="l00289"></a>00289 XALAN_CPP_NAMESPACE_END
<a name="l00290"></a>00290 
<a name="l00291"></a>00291 
<a name="l00292"></a>00292 
<a name="l00293"></a>00293 <span class="preprocessor">#endif  // XPATHENVSUPPORTDEFAULT_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>
