| <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> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </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 <<a class="code" href="XSLTDefinitions_8hpp.html">xalanc/XSLT/XSLTDefinitions.hpp</a>></font> |
| 00023 |
| 00024 |
| 00025 |
| 00026 <font class="preprocessor">#include <cassert></font> |
| 00027 |
| 00028 |
| 00029 |
| 00030 <font class="preprocessor">#include <<a class="code" href="XalanVector_8hpp.html">xalanc/Include/XalanVector.hpp</a>></font> |
| 00031 |
| 00032 |
| 00033 |
| 00034 <font class="preprocessor">#include <<a class="code" href="XalanQName_8hpp.html">xalanc/XPath/XalanQName.hpp</a>></font> |
| 00035 <font class="preprocessor">#include <<a class="code" href="XObject_8hpp.html">xalanc/XPath/XObject.hpp</a>></font> |
| 00036 |
| 00037 |
| 00038 |
| 00039 <font class="preprocessor">#include <<a class="code" href="XSLTProcessorException_8hpp.html">xalanc/XSLT/XSLTProcessorException.hpp</a>></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& 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<ParamsVectorEntry> ParamsVectorType; |
| <a name="l00145"></a><a class="code" href="classVariablesStack.html#s2">00145</a> <font class="keyword">typedef</font> XalanVector<const ElemVariable*> RecursionGuardStackType; |
| <a name="l00146"></a><a class="code" href="classVariablesStack.html#s3">00146</a> <font class="keyword">typedef</font> XalanVector<const ElemTemplateElement*> ElemTemplateElementStackType; |
| 00147 |
| 00154 <font class="keywordtype">void</font> |
| 00155 <a class="code" href="classVariablesStack.html#a7">pushParams</a>(<font class="keyword">const</font> ParamsVectorType& 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>& qname, |
| 00170 <a class="code" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a>& executionContext, |
| 00171 <font class="keywordtype">bool</font>& 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>& qname, |
| 00190 <a class="code" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a>& executionContext, |
| 00191 <font class="keywordtype">bool</font>& 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>& 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>& name, |
| 00223 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>& 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>& 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>& 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& theEntry) <font class="keyword">const</font>; |
| 00328 |
| 00329 <font class="keyword">private</font>: |
| 00330 |
| 00331 <a class="code" href="classVariablesStack.html">VariablesStack</a>& 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>& 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& 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>& |
| <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>& 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& |
| 00460 <a class="code" href="classVariablesStack_1_1StackEntry.html#a14">operator=</a>(<font class="keyword">const</font> StackEntry& 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& 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<StackEntry> 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>& 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& theEntry); |
| 00531 |
| 00535 <font class="keywordtype">void</font> |
| 00536 pop(); |
| 00537 |
| 00543 <font class="keyword">const</font> StackEntry& |
| 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>& name, |
| 00559 <a class="code" href="classStylesheetExecutionContext.html">StylesheetExecutionContext</a>& executionContext, |
| 00560 <font class="keywordtype">bool</font> fIsParam, |
| 00561 <font class="keywordtype">bool</font> fSearchGlobalSpace, |
| 00562 <font class="keywordtype">bool</font>& fNameFound); |
| 00563 |
| 00564 size_type |
| 00565 findEntry( |
| 00566 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>& 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 © 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>
|