Xalan-C++ API Documentation
Go to the documentation of this file.
18 #if !defined(XALAN_VARIABLESSTACK_HEADER_GUARD)
19 #define XALAN_VARIABLESSTACK_HEADER_GUARD
45 XALAN_CPP_NAMESPACE_BEGIN
175 return findXObject(qname, executionContext,
true,
false, fNameFound);
195 return findXObject(qname, executionContext,
false,
true, fNameFound);
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;
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);
577 bool m_globalStackFrameMarked;
602 XALAN_CPP_NAMESPACE_END
606 #endif // #if !defined(XALAN_VARIABLESSTACK_HEADER_GUARD)
virtual const XalanDOMChar * getType() const
Retrieve type of exception.
StackEntry(const ElemTemplateElement *elem)
Construct an element frame marker.
const XalanQName * getName() const
Retrieve object name.
void pushVariable(const XalanQName &name, const ElemVariable *var, const ElemTemplateElement *e)
Push a named variable onto the processor variable stack.
~StackEntry()
Destructor...
VariablesStack(MemoryManager &theManager)
Constructor for a variable stack.
void unmarkGlobalStackFrame()
Clear the marking of the global stack frame.
void operator()(const ParamsVectorType::value_type &theEntry) const
size_type getCurrentStackFrameIndex() const
Get the top of the stack frame from where a search for a variable or param should take place.
const ElemVariable * m_variable
const ElemTemplateElement * getElement() const
Retrieve the ElemTemplateElem where frame begins.
const XObjectPtr getVariable(const XalanQName &qname, StylesheetExecutionContext &executionContext, bool &fNameFound)
Given a name, find the corresponding XObject.
StackEntry(const XalanQName *name, const ElemVariable *var, bool isParam=false)
Construct a variable that has not been evaluated yet.
const XObjectPtr & getValue() const
Retrieve object's XObject pointer.
void start()
Mark the top of the stack.
void markGlobalStackFrame()
Mark the top of the global stack frame.
#define XALAN_XSLT_EXPORT
void popContextMarker()
Pop the current context from the current context stack.
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.
void reset()
Reset the stack.
Defines a class to keep track of a stack for macro arguments.
StackEntry()
Construct a context marker.
XalanVector< const ElemVariable * > RecursionGuardStackType
InvalidStackContextException(XalanDOMString &theResult)
eType getType() const
Determine type of stack entry.
XalanVector< StackEntry > VariableStackStackType
void pushContextMarker()
Push a context marker onto the stack to let us know when to stop searching for a var.
eType
Enumeration for types of stack entries, one of context state, context marker, element marker,...
XalanVector< const ElemTemplateElement * > ElemTemplateElementStackType
PushParamFunctor(VariablesStack &theVariablesStack)
const XalanQName * m_qname
ParamsVectorEntry(const XalanQName *qname, const ElemVariable *variable)
bool operator==(const StackEntry &theRHS) const
void pushElementFrame(const ElemTemplateElement *elem)
Push a frame marker for an element.
size_type getGlobalStackFrameIndex() const
Get the top of the global stack frame.
void resetParams()
Reset all params in the current stack frame.
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.
void popElementFrame()
Pop a frame marker for an element.
virtual ~InvalidStackContextException()
Class to hold XObjectPtr return types.
XALAN_CPP_NAMESPACE_BEGIN typedef size_t size_type
XalanVector< ParamsVectorEntry > ParamsVectorType
ParamsVectorEntry(const XalanQName *qname, const XObjectPtr value)
Class to represent a qualified name.
StackEntry(const StackEntry &theSource)
Copy constructor...
StackEntry(const XalanQName *name, const XObjectPtr &val, bool isParam=false)
Construct a variable that is already evaluated.
const ElemVariable * getVariable() const
Retrieve object's XObject pointer.
void setValue(const XObjectPtr &theValue)
Retrieve object's XObject pointer.
StackEntry & operator=(const StackEntry &theRHS)
void pushParams(const ParamsVectorType &theParams)
Push the provided objects as parameters.
size_type getStackSize() const
void pushVariable(const XalanQName &name, const XObjectPtr &val, const ElemTemplateElement *e)
Push a named variable onto the processor variable stack.
Interpreting class diagrams
Doxygen and
GraphViz are
used to generate this API documentation from the Xalan-C header files.
Xalan-C++ XSLT Processor Version 1.11
Copyright © 1999-2012 The Apache Software Foundation.
All Rights Reserved.
|
|