18 #if !defined(XALAN_VARIABLESSTACK_HEADER_GUARD) 19 #define XALAN_VARIABLESSTACK_HEADER_GUARD 45 XALAN_CPP_NAMESPACE_BEGIN
157 pushParams(
const ParamsVectorType& theParams);
175 return findXObject(qname, executionContext,
true,
false, fNameFound);
195 return findXObject(qname, executionContext,
false,
true, fNameFound);
244 markGlobalStackFrame();
250 unmarkGlobalStackFrame();
262 if (currentStackFrameIndex == ~0u)
264 assert(
size_type(m_stack.size()) == m_stack.size());
266 m_currentStackFrameIndex =
size_type(m_stack.size());
270 m_currentStackFrameIndex = currentStackFrameIndex;
283 return m_currentStackFrameIndex;
294 return m_globalStackFrameIndex;
307 virtual const XalanDOMChar*
315 static const XalanDOMChar m_type[];
324 m_variablesStack(theVariablesStack)
363 bool isParam =
false);
371 bool isParam =
false);
489 enum { eDefaultStackSize = 100 };
493 class CommitPushParams
504 m_variablesStack = 0;
511 size_type m_stackSize;
514 friend class CommitPushParams;
548 assert(m_stack.empty() ==
false);
550 return m_stack.back();
553 friend class CommitPushElementFrame;
554 friend class EnsurePop;
556 friend class SetAndRestoreForceGlobalSearch;
563 bool fSearchGlobalSpace,
570 bool fSearchGlobalSpace);
573 VariableStackStackType m_stack;
575 size_type m_globalStackFrameIndex;
577 bool m_globalStackFrameMarked;
584 size_type m_currentStackFrameIndex;
591 RecursionGuardStackType m_guardStack;
597 ElemTemplateElementStackType m_elementFrameStack;
602 XALAN_CPP_NAMESPACE_END
606 #endif // #if !defined(XALAN_VARIABLESSTACK_HEADER_GUARD) PushParamFunctor(VariablesStack &theVariablesStack)
XalanVector< const ElemVariable * > RecursionGuardStackType
eType
Enumeration for types of stack entries, one of context state, context marker, element marker...
void setValue(const XObjectPtr &theValue)
Retrieve object's XObject pointer.
XalanVector< const ElemTemplateElement * > ElemTemplateElementStackType
const XalanQName * getName() const
Retrieve object name.
XalanVector< StackEntry > VariableStackStackType
ParamsVectorEntry(const XalanQName *qname, const ElemVariable *variable)
void setCurrentStackFrameIndex(size_type currentStackFrameIndex=~0u)
Set the top of the stack frame from where a search for a variable or param should take place...
Class to hold XObjectPtr return types.
size_type getCurrentStackFrameIndex() const
Get the top of the stack frame from where a search for a variable or param should take place...
virtual const XalanDOMChar * getType() const
Retrieve type of exception.
ParamsVectorEntry(const XalanQName *qname, const XObjectPtr value)
const XObjectPtr getVariable(const XalanQName &qname, StylesheetExecutionContext &executionContext, bool &fNameFound)
Given a name, find the corresponding XObject.
const XObjectPtr getParamVariable(const XalanQName &qname, StylesheetExecutionContext &executionContext, bool &fNameFound)
Given a name, return a string representing the value, but don't look in the global space...
const ElemVariable * getVariable() const
Retrieve object's XObject pointer.
XALAN_CPP_NAMESPACE_BEGIN typedef size_t size_type
XalanVector< ParamsVectorEntry > ParamsVectorType
size_type getGlobalStackFrameIndex() const
Get the top of the global stack frame.
size_type getStackSize() const
const XalanQName * m_qname
#define XALAN_XSLT_EXPORT
eType getType() const
Determine type of stack entry.
const ElemTemplateElement * getElement() const
Retrieve the ElemTemplateElem where frame begins.
bool operator==(const ElemAttributeSet &theLHS, const ElemAttributeSet &theRHS)
Defines a class to keep track of a stack for macro arguments.
Class to represent a qualified name.
const ElemVariable * m_variable
const XObjectPtr & getValue() const
Retrieve object's XObject pointer.