blob: 45287ddb378adc096feb435928a7bfa8c10113e2 [file] [log] [blame]
<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD>
<BODY>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center">The Xalan C++ XSLT Processor Version 1.10</h3>
</BODY>
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>VariablesStack.hpp</h1><a href="VariablesStack_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>
00002 <font class="comment"> * Copyright 1999-2004 The Apache Software Foundation.</font>
00003 <font class="comment"> *</font>
00004 <font class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</font>
00005 <font class="comment"> * you may not use this file except in compliance with the License.</font>
00006 <font class="comment"> * You may obtain a copy of the License at</font>
00007 <font class="comment"> *</font>
00008 <font class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</font>
00009 <font class="comment"> *</font>
00010 <font class="comment"> * Unless required by applicable law or agreed to in writing, software</font>
00011 <font class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</font>
00012 <font class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</font>
00013 <font class="comment"> * See the License for the specific language governing permissions and</font>
00014 <font class="comment"> * limitations under the License.</font>
00015 <font class="comment"> */</font>
00016 <font class="preprocessor">#if !defined(XALAN_VARIABLESSTACK_HEADER_GUARD)</font>
<a name="l00017"></a><a class="code" href="VariablesStack_8hpp.html#a0">00017</a> <font class="preprocessor"></font><font class="preprocessor">#define XALAN_VARIABLESSTACK_HEADER_GUARD</font>
00018 <font class="preprocessor"></font>
00019
00020
00021 <font class="comment">// Base include file. Must be first.</font>
00022 <font class="preprocessor">#include &lt;<a class="code" href="XSLTDefinitions_8hpp.html">xalanc/XSLT/XSLTDefinitions.hpp</a>&gt;</font>
00023
00024
00025
00026 <font class="preprocessor">#include &lt;cassert&gt;</font>
00027
00028
00029
00030 <font class="preprocessor">#include &lt;<a class="code" href="XalanVector_8hpp.html">xalanc/Include/XalanVector.hpp</a>&gt;</font>
00031
00032
00033
00034 <font class="preprocessor">#include &lt;<a class="code" href="XalanQName_8hpp.html">xalanc/XPath/XalanQName.hpp</a>&gt;</font>
00035 <font class="preprocessor">#include &lt;<a class="code" href="XObject_8hpp.html">xalanc/XPath/XObject.hpp</a>&gt;</font>
00036
00037
00038
00039 <font class="preprocessor">#include &lt;<a class="code" href="XSLTProcessorException_8hpp.html">xalanc/XSLT/XSLTProcessorException.hpp</a>&gt;</font>
00040
00041
00042
00043 XALAN_CPP_NAMESPACE_BEGIN
00044
00045
00046
<a name="l00047"></a><a class="code" href="VariablesStack_8hpp.html#a1">00047</a> <font class="keyword">class </font>Arg;
00048 <font class="keyword">class </font><a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>;
00049 <font class="keyword">class </font><a class="code" href="classElemVariable.html">ElemVariable</a>;
00050 <font class="keyword">class </font><a class="code" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a>;
00051 <font class="keyword">class </font><a class="code" href="classXalanNode.html">XalanNode</a>;
00052
00053
00054
<a name="l00058"></a><a class="code" href="classVariablesStack.html">00058</a> <font class="keyword">class </font>XALAN_XSLT_EXPORT <a class="code" href="classVariablesStack.html">VariablesStack</a>
00059 {
00060 <font class="keyword">public</font>:
00061
<a name="l00062"></a><a class="code" href="classVariablesStack.html#s0">00062</a> <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> size_type;
00063
00067 <font class="keyword">explicit</font>
00068 <a class="code" href="classVariablesStack.html#a0">VariablesStack</a>(MemoryManagerType&amp; theManager);
00069
00070 <a class="code" href="classVariablesStack.html#a1">~VariablesStack</a>();
00071
00075 <font class="keywordtype">void</font>
00076 <a class="code" href="classVariablesStack.html#a2">reset</a>();
00077
00083 <font class="keywordtype">void</font>
00084 <a class="code" href="classVariablesStack.html#a3">pushElementFrame</a>(<font class="keyword">const</font> <a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>* elem);
00085
00091 <font class="keywordtype">void</font>
00092 <a class="code" href="classVariablesStack.html#a4">popElementFrame</a>();
00093
00101 <font class="keywordtype">void</font>
00102 <a class="code" href="classVariablesStack.html#a5">pushContextMarker</a>();
00103
00107 <font class="keywordtype">void</font>
00108 <a class="code" href="classVariablesStack.html#a6">popContextMarker</a>();
00109
<a name="l00110"></a><a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html">00110</a> <font class="keyword">struct </font>ParamsVectorEntry
00111 {
<a name="l00112"></a><a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#a0">00112</a> <a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#a0">ParamsVectorEntry</a>() :
00113 m_qname(0),
00114 m_value(),
00115 m_variable(0)
00116 {
00117 }
00118
<a name="l00119"></a><a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#a1">00119</a> <a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#a0">ParamsVectorEntry</a>(
00120 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>* qname,
00121 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a> value) :
00122 m_qname(qname),
00123 m_value(value),
00124 m_variable(0)
00125 {
00126 }
00127
<a name="l00128"></a><a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#a2">00128</a> <a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#a0">ParamsVectorEntry</a>(
00129 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>* qname,
00130 <font class="keyword">const</font> <a class="code" href="classElemVariable.html">ElemVariable</a>* variable) :
00131 m_qname(qname),
00132 m_value(),
00133 m_variable(variable)
00134 {
00135 }
00136
<a name="l00137"></a><a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#m0">00137</a> <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>* m_qname;
00138
<a name="l00139"></a><a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#m1">00139</a> <a class="code" href="classXObjectPtr.html">XObjectPtr</a> m_value;
00140
<a name="l00141"></a><a class="code" href="structVariablesStack_1_1ParamsVectorEntry.html#m2">00141</a> <font class="keyword">const</font> <a class="code" href="classElemVariable.html">ElemVariable</a>* m_variable;
00142 };
00143
<a name="l00144"></a><a class="code" href="classVariablesStack.html#s1">00144</a> <font class="keyword">typedef</font> XalanVector&lt;ParamsVectorEntry&gt; ParamsVectorType;
<a name="l00145"></a><a class="code" href="classVariablesStack.html#s2">00145</a> <font class="keyword">typedef</font> XalanVector&lt;const ElemVariable*&gt; RecursionGuardStackType;
<a name="l00146"></a><a class="code" href="classVariablesStack.html#s3">00146</a> <font class="keyword">typedef</font> XalanVector&lt;const ElemTemplateElement*&gt; ElemTemplateElementStackType;
00147
00154 <font class="keywordtype">void</font>
00155 <a class="code" href="classVariablesStack.html#a7">pushParams</a>(<font class="keyword">const</font> ParamsVectorType&amp; theParams);
00156
00167 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>
<a name="l00168"></a><a class="code" href="classVariablesStack.html#a8">00168</a> <a class="code" href="classVariablesStack.html#a8">getParamVariable</a>(
00169 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; qname,
00170 <a class="code" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a>&amp; executionContext,
00171 <font class="keywordtype">bool</font>&amp; fNameFound)<font class="keyword"></font>
00172 <font class="keyword"> </font>{
00173 <font class="keywordflow">return</font> findXObject(qname, executionContext, <font class="keyword">true</font>, <font class="keyword">false</font>, fNameFound);
00174 }
00175
00187 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>
<a name="l00188"></a><a class="code" href="classVariablesStack.html#a9">00188</a> <a class="code" href="classVariablesStack.html#a9">getVariable</a>(
00189 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; qname,
00190 <a class="code" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a>&amp; executionContext,
00191 <font class="keywordtype">bool</font>&amp; fNameFound)<font class="keyword"></font>
00192 <font class="keyword"> </font>{
00193 <font class="keywordflow">return</font> findXObject(qname, executionContext, <font class="keyword">false</font>, <font class="keyword">true</font>, fNameFound);
00194 }
00195
00205 <font class="keywordtype">void</font>
00206 <a class="code" href="classVariablesStack.html#a10">pushVariable</a>(
00207 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; name,
00208 <font class="keyword">const</font> <a class="code" href="classElemVariable.html">ElemVariable</a>* var,
00209 <font class="keyword">const</font> <a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>* e);
00210
00220 <font class="keywordtype">void</font>
00221 <a class="code" href="classVariablesStack.html#a10">pushVariable</a>(
00222 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; name,
00223 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; val,
00224 <font class="keyword">const</font> <a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>* e);
00225
00229 <font class="keywordtype">void</font>
00230 <a class="code" href="classVariablesStack.html#a12">start</a>();
00231
00235 <font class="keywordtype">void</font>
00236 <a class="code" href="classVariablesStack.html#a13">resetParams</a>();
00237
00241 <font class="keywordtype">void</font>
00242 <a class="code" href="classVariablesStack.html#a14">markGlobalStackFrame</a>();
00243
00247 <font class="keywordtype">void</font>
00248 <a class="code" href="classVariablesStack.html#a15">unmarkGlobalStackFrame</a>();
00249
00257 <font class="keywordtype">void</font>
<a name="l00258"></a><a class="code" href="classVariablesStack.html#a16">00258</a> <a class="code" href="classVariablesStack.html#a16">setCurrentStackFrameIndex</a>(size_type currentStackFrameIndex = ~0u)<font class="keyword"></font>
00259 <font class="keyword"> </font>{
00260 <font class="keywordflow">if</font> (currentStackFrameIndex == ~0u)
00261 {
00262 assert(<a class="code" href="classVariablesStack.html#s0">size_type</a>(m_stack.size()) == m_stack.size());
00263
00264 m_currentStackFrameIndex = <a class="code" href="classVariablesStack.html#s0">size_type</a>(m_stack.size());
00265 }
00266 <font class="keywordflow">else</font>
00267 {
00268 m_currentStackFrameIndex = currentStackFrameIndex;
00269 }
00270 }
00271
00278 size_type
<a name="l00279"></a><a class="code" href="classVariablesStack.html#a17">00279</a> <a class="code" href="classVariablesStack.html#a17">getCurrentStackFrameIndex</a>()<font class="keyword"> const</font>
00280 <font class="keyword"> </font>{
00281 <font class="keywordflow">return</font> m_currentStackFrameIndex;
00282 }
00283
00289 size_type
<a name="l00290"></a><a class="code" href="classVariablesStack.html#a18">00290</a> <a class="code" href="classVariablesStack.html#a18">getGlobalStackFrameIndex</a>()<font class="keyword"> const</font>
00291 <font class="keyword"> </font>{
00292 <font class="keywordflow">return</font> m_globalStackFrameIndex;
00293 }
00294
<a name="l00295"></a><a class="code" href="classVariablesStack_1_1InvalidStackContextException.html">00295</a> <font class="keyword">class </font>InvalidStackContextException : <font class="keyword">public</font> <a class="code" href="classXSLTProcessorException.html">XSLTProcessorException</a>
00296 {
00297 <font class="keyword">public</font>:
00298
00299 <a class="code" href="classVariablesStack_1_1InvalidStackContextException.html#a0">InvalidStackContextException</a>(<a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theResult);
00300
00301 <font class="keyword">virtual</font>
00302 <a class="code" href="classVariablesStack_1_1InvalidStackContextException.html#a1">~InvalidStackContextException</a>();
00303
00304
00305 <font class="keyword">virtual</font> <font class="keyword">const</font> XalanDOMChar*
<a name="l00306"></a><a class="code" href="classVariablesStack_1_1InvalidStackContextException.html#a2">00306</a> <a class="code" href="classVariablesStack_1_1InvalidStackContextException.html#a2">getType</a>()<font class="keyword"> const</font>
00307 <font class="keyword"> </font>{
00308 <font class="keywordflow">return</font> m_type;
00309 }
00310
00311 <font class="keyword">private</font>:
00312
00313 <font class="keyword">static</font> <font class="keyword">const</font> XalanDOMChar m_type[];
00314
00315 };
00316
<a name="l00317"></a><a class="code" href="classVariablesStack_1_1PushParamFunctor.html">00317</a> <font class="keyword">class </font>PushParamFunctor
00318 {
00319 <font class="keyword">public</font>:
00320
<a name="l00321"></a><a class="code" href="classVariablesStack_1_1PushParamFunctor.html#a0">00321</a> <a class="code" href="classVariablesStack_1_1PushParamFunctor.html#a0">PushParamFunctor</a>(<a class="code" href="classVariablesStack.html">VariablesStack</a>&amp; theVariablesStack) :
00322 m_variablesStack(theVariablesStack)
00323 {
00324 }
00325
00326 <font class="keywordtype">void</font>
00327 <a class="code" href="classVariablesStack_1_1PushParamFunctor.html#a1">operator()</a>(<font class="keyword">const</font> ParamsVectorType::value_type&amp; theEntry) <font class="keyword">const</font>;
00328
00329 <font class="keyword">private</font>:
00330
00331 <a class="code" href="classVariablesStack.html">VariablesStack</a>&amp; m_variablesStack;
00332 };
00333
<a name="l00334"></a><a class="code" href="classVariablesStack_1_1StackEntry.html">00334</a> <font class="keyword">class </font>XALAN_XSLT_EXPORT StackEntry
00335 {
00336 <font class="keyword">public</font>:
00337
<a name="l00342"></a><a class="code" href="classVariablesStack_1_1StackEntry.html#s6">00342</a> <font class="keyword">enum</font> eType { eContextMarker,
00343 eVariable,
00344 eParam,
00345 eActiveParam,
00346 eElementFrameMarker,
00347 eNextValue };
00348
00352 <font class="keyword">explicit</font>
00353 <a class="code" href="classVariablesStack_1_1StackEntry.html#a0">StackEntry</a>();
00354
00358 <a class="code" href="classVariablesStack_1_1StackEntry.html#a0">StackEntry</a>(
00359 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>* name,
00360 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; val,
00361 <font class="keywordtype">bool</font> isParam = <font class="keyword">false</font>);
00362
00366 <a class="code" href="classVariablesStack_1_1StackEntry.html#a0">StackEntry</a>(
00367 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>* name,
00368 <font class="keyword">const</font> <a class="code" href="classElemVariable.html">ElemVariable</a>* var,
00369 <font class="keywordtype">bool</font> isParam = <font class="keyword">false</font>);
00370
00374 <a class="code" href="classVariablesStack_1_1StackEntry.html#a0">StackEntry</a>(<font class="keyword">const</font> <a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>* elem);
00375
00376
00380 <a class="code" href="classVariablesStack_1_1StackEntry.html#a0">StackEntry</a>(<font class="keyword">const</font> StackEntry&amp; theSource);
00381
00385 <a class="code" href="classVariablesStack_1_1StackEntry.html#a5">~StackEntry</a>();
00386
00392 eType
<a name="l00393"></a><a class="code" href="classVariablesStack_1_1StackEntry.html#a6">00393</a> <a class="code" href="classVariablesStack_1_1StackEntry.html#a6">getType</a>()<font class="keyword"> const</font>
00394 <font class="keyword"> </font>{
00395 <font class="keywordflow">return</font> m_type;
00396 }
00397
00403 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>*
<a name="l00404"></a><a class="code" href="classVariablesStack_1_1StackEntry.html#a7">00404</a> <a class="code" href="classVariablesStack_1_1StackEntry.html#a7">getName</a>()<font class="keyword"> const</font>
00405 <font class="keyword"> </font>{
00406 <font class="keywordflow">return</font> m_qname;
00407 }
00408
00414 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp;
<a name="l00415"></a><a class="code" href="classVariablesStack_1_1StackEntry.html#a8">00415</a> <a class="code" href="classVariablesStack_1_1StackEntry.html#a8">getValue</a>()<font class="keyword"> const</font>
00416 <font class="keyword"> </font>{
00417 <font class="keywordflow">return</font> m_value;
00418 }
00419
00425 <font class="keywordtype">void</font>
<a name="l00426"></a><a class="code" href="classVariablesStack_1_1StackEntry.html#a9">00426</a> <a class="code" href="classVariablesStack_1_1StackEntry.html#a9">setValue</a>(<font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theValue)<font class="keyword"></font>
00427 <font class="keyword"> </font>{
00428 m_value = theValue;
00429 }
00430
00436 <font class="keyword">const</font> <a class="code" href="classElemVariable.html">ElemVariable</a>*
<a name="l00437"></a><a class="code" href="classVariablesStack_1_1StackEntry.html#a10">00437</a> <a class="code" href="classVariablesStack_1_1StackEntry.html#a10">getVariable</a>()<font class="keyword"> const</font>
00438 <font class="keyword"> </font>{
00439 <font class="keywordflow">return</font> m_variable;
00440 }
00441
00442 <font class="keywordtype">void</font>
00443 <a class="code" href="classVariablesStack_1_1StackEntry.html#a11">activate</a>();
00444
00445 <font class="keywordtype">void</font>
00446 <a class="code" href="classVariablesStack_1_1StackEntry.html#a12">deactivate</a>();
00447
00453 <font class="keyword">const</font> <a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>*
<a name="l00454"></a><a class="code" href="classVariablesStack_1_1StackEntry.html#a13">00454</a> <a class="code" href="classVariablesStack_1_1StackEntry.html#a13">getElement</a>()<font class="keyword"> const</font>
00455 <font class="keyword"> </font>{
00456 <font class="keywordflow">return</font> m_element;
00457 }
00458
00459 StackEntry&amp;
00460 <a class="code" href="classVariablesStack_1_1StackEntry.html#a14">operator=</a>(<font class="keyword">const</font> StackEntry&amp; theRHS);
00461
00462 <font class="keywordtype">bool</font>
00463 <a class="code" href="classVariablesStack_1_1StackEntry.html#a15">operator==</a>(<font class="keyword">const</font> StackEntry&amp; theRHS) <font class="keyword">const</font>;
00464
00465 <font class="keyword">private</font>:
00466
00467 <font class="comment">// Data members...</font>
00468 eType m_type;
00469
00470 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>* m_qname;
00471
00472 <a class="code" href="classXObjectPtr.html">XObjectPtr</a> m_value;
00473
00474 <font class="keyword">const</font> <a class="code" href="classElemVariable.html">ElemVariable</a>* m_variable;
00475
00476 <font class="keyword">const</font> <a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>* m_element;
00477 };
00478
<a name="l00479"></a><a class="code" href="classVariablesStack.html#s4">00479</a> <font class="keyword">typedef</font> XalanVector&lt;StackEntry&gt; VariableStackStackType;
00480
00481 size_type
<a name="l00482"></a><a class="code" href="classVariablesStack.html#a19">00482</a> <a class="code" href="classVariablesStack.html#a19">getStackSize</a>()<font class="keyword"> const</font>
00483 <font class="keyword"> </font>{
00484 <font class="keywordflow">return</font> <a class="code" href="classVariablesStack.html#s0">size_type</a>(m_stack.size());
00485 }
00486
00487 <font class="keyword">enum</font> { eDefaultStackSize = 100 };
00488
00489 <font class="keyword">private</font>:
00490
00491 <font class="keyword">class </font>CommitPushParams
00492 {
00493 <font class="keyword">public</font>:
00494
00495 <a class="code" href="classVariablesStack.html#l0">CommitPushParams</a>(<a class="code" href="classVariablesStack.html">VariablesStack</a>&amp; theVariablesStack);
00496
00497 ~CommitPushParams();
00498
00499 <font class="keywordtype">void</font>
00500 commit()<font class="keyword"></font>
00501 <font class="keyword"> </font>{
00502 m_variablesStack = 0;
00503 }
00504
00505 <font class="keyword">private</font>:
00506
00507 <a class="code" href="classVariablesStack.html">VariablesStack</a>* m_variablesStack;
00508
00509 size_type m_stackSize;
00510 };
00511
<a name="l00512"></a><a class="code" href="classVariablesStack.html#l0">00512</a> <font class="keyword">friend</font> <font class="keyword">class </font>CommitPushParams;
00513
00521 <font class="keywordtype">bool</font>
00522 elementFrameAlreadyPushed(<font class="keyword">const</font> <a class="code" href="classElemTemplateElement.html">ElemTemplateElement</a>* elem) <font class="keyword">const</font>;
00523
00529 <font class="keywordtype">void</font>
00530 push(<font class="keyword">const</font> StackEntry&amp; theEntry);
00531
00535 <font class="keywordtype">void</font>
00536 pop();
00537
00543 <font class="keyword">const</font> StackEntry&amp;
00544 back()<font class="keyword"> const</font>
00545 <font class="keyword"> </font>{
00546 assert(m_stack.empty() == <font class="keyword">false</font>);
00547
00548 <font class="keywordflow">return</font> m_stack.back();
00549 }
00550
<a name="l00551"></a><a class="code" href="classVariablesStack.html#l1">00551</a> <font class="keyword">friend</font> <font class="keyword">class </font>CommitPushElementFrame;
<a name="l00552"></a><a class="code" href="classVariablesStack.html#l2">00552</a> <font class="keyword">friend</font> <font class="keyword">class </font>EnsurePop;
<a name="l00553"></a><a class="code" href="classVariablesStack.html#l3">00553</a> <font class="keyword">friend</font> <font class="keyword">class </font>PushParamFunctor;
<a name="l00554"></a><a class="code" href="classVariablesStack.html#l4">00554</a> <font class="keyword">friend</font> <font class="keyword">class </font>SetAndRestoreForceGlobalSearch;
00555
00556 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>
00557 findXObject(
00558 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; name,
00559 <a class="code" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a>&amp; executionContext,
00560 <font class="keywordtype">bool</font> fIsParam,
00561 <font class="keywordtype">bool</font> fSearchGlobalSpace,
00562 <font class="keywordtype">bool</font>&amp; fNameFound);
00563
00564 size_type
00565 findEntry(
00566 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; name,
00567 <font class="keywordtype">bool</font> fIsParam,
00568 <font class="keywordtype">bool</font> fSearchGlobalSpace);
00569
00570
00571 VariableStackStackType m_stack;
00572
00573 size_type m_globalStackFrameIndex;
00574
00575 <font class="keywordtype">bool</font> m_globalStackFrameMarked;
00576
00582 size_type m_currentStackFrameIndex;
00583
00589 RecursionGuardStackType m_guardStack;
00590
00595 ElemTemplateElementStackType m_elementFrameStack;
00596 };
00597
00598
00599
00600 XALAN_CPP_NAMESPACE_END
00601
00602
00603
00604 <font class="preprocessor">#endif // #if !defined(XALAN_VARIABLESSTACK_HEADER_GUARD)</font>
</font></pre></div><p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p>
<p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and
<A href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</A> are used to generate this API documentation from the Xalan-C header files.</I></FONT></p>
<TABLE border="0" cellpadding="0" cellspacing="0" width="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="../resources/dot.gif" width="1" alt="dot"></TD></TR></TABLE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%">
<TR>
<TD WIDTH="80%" VALIGN="TOP">
<P ALIGN="CENTER"><B>Xalan-C++ XSLT Processor Version 1.10</B><BR>
Copyright &copy; 1999-2004 The Apache Software Foundation. All Rights Reserved.</i></p>
</TD>
</TR>
<TR>
<TD WIDTH="100%">
<P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0" ALT="Apache Logo">
</TD>
</TR>
</TABLE>