Defines a class to keep track of a stack for macro arguments. More...
Classes | |
| class | InvalidStackContextException |
| struct | ParamsVectorEntry |
| class | PushParamFunctor |
| class | StackEntry |
Public Types | |
| enum | { eDefaultStackSize = 100 } |
| typedef unsigned long | size_type |
| typedef XalanVector < ParamsVectorEntry > | ParamsVectorType |
| typedef XalanVector< const ElemVariable * > | RecursionGuardStackType |
| typedef XalanVector< const ElemTemplateElement * > | ElemTemplateElementStackType |
| typedef XalanVector< StackEntry > | VariableStackStackType |
Public Member Functions | |
| VariablesStack (MemoryManagerType &theManager) | |
| Constructor for a variable stack. More... | |
| ~VariablesStack () | |
| void | reset () |
| Reset the stack. More... | |
| void | pushElementFrame (const ElemTemplateElement *elem) |
| Push a frame marker for an element. More... | |
| void | popElementFrame () |
| Pop a frame marker for an element. More... | |
| void | pushContextMarker () |
| Push a context marker onto the stack to let us know when to stop searching for a var. More... | |
| void | popContextMarker () |
| Pop the current context from the current context stack. More... | |
| void | pushParams (const ParamsVectorType &theParams) |
| Push the provided objects as parameters. More... | |
| 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. More... | |
| const XObjectPtr | getVariable (const XalanQName &qname, StylesheetExecutionContext &executionContext, bool &fNameFound) |
| Given a name, find the corresponding XObject. More... | |
| void | pushVariable (const XalanQName &name, const ElemVariable *var, const ElemTemplateElement *e) |
| Push a named variable onto the processor variable stack. More... | |
| void | pushVariable (const XalanQName &name, const XObjectPtr &val, const ElemTemplateElement *e) |
| Push a named variable onto the processor variable stack. More... | |
| void | start () |
| Mark the top of the stack. More... | |
| void | resetParams () |
| Reset all params in the current stack frame. More... | |
| void | markGlobalStackFrame () |
| Mark the top of the global stack frame. More... | |
| void | unmarkGlobalStackFrame () |
| Clear the marking of the global stack frame. More... | |
| 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. More... | |
| size_type | getCurrentStackFrameIndex () const |
| Get the top of the stack frame from where a search for a variable or param should take place. More... | |
| size_type | getGlobalStackFrameIndex () const |
| Get the top of the global stack frame. More... | |
| size_type | getStackSize () const |
Friends | |
| class | CommitPushParams |
| class | CommitPushElementFrame |
| class | EnsurePop |
| class | PushParamFunctor |
| class | SetAndRestoreForceGlobalSearch |
Defines a class to keep track of a stack for macro arguments.
| typedef XalanVector<const ElemVariable*> VariablesStack::RecursionGuardStackType |
| typedef unsigned long VariablesStack::size_type |
|
explicit |
Constructor for a variable stack.
| VariablesStack::~VariablesStack | ( | ) |
| size_type VariablesStack::getCurrentStackFrameIndex | ( | ) | const |
Get the top of the stack frame from where a search for a variable or param should take place.
| size_type VariablesStack::getGlobalStackFrameIndex | ( | ) | const |
Get the top of the global stack frame.
| const XObjectPtr VariablesStack::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.
Since the variable may not yet have been evaluated, this may return a null XObjectPtr.
| theName | name of variable |
| exeuctionContext | the current execution context |
| fNameFound | set to true if the name was found, false if not. |
| size_type VariablesStack::getStackSize | ( | ) | const |
| const XObjectPtr VariablesStack::getVariable | ( | const XalanQName & | qname, |
| StylesheetExecutionContext & | executionContext, | ||
| bool & | fNameFound | ||
| ) |
Given a name, find the corresponding XObject.
If the variable exists, but has not yet been evaluated, the variable will be evaluated and the result returned. This may return a null XObjectPtr, if the variable was not found.
| qname | name of variable |
| exeuctionContext | the current execution context |
| fNameFound | set to true if the name was found, false if not. |
| void VariablesStack::markGlobalStackFrame | ( | ) |
Mark the top of the global stack frame.
| void VariablesStack::popContextMarker | ( | ) |
Pop the current context from the current context stack.
| void VariablesStack::popElementFrame | ( | ) |
Pop a frame marker for an element.
| elem | the element |
| void VariablesStack::pushContextMarker | ( | ) |
Push a context marker onto the stack to let us know when to stop searching for a var.
| caller | caller node |
| sourceNode | source node |
| void VariablesStack::pushElementFrame | ( | const ElemTemplateElement * | elem | ) |
Push a frame marker for an element.
| elem | the element |
| void VariablesStack::pushParams | ( | const ParamsVectorType & | theParams | ) |
Push the provided objects as parameters.
You must call popContextMarker() when you are done with the arguments.
| theParam | The vector containing the parameters. |
| void VariablesStack::pushVariable | ( | const XalanQName & | name, |
| const ElemVariable * | var, | ||
| const ElemTemplateElement * | e | ||
| ) |
Push a named variable onto the processor variable stack.
Don't forget to call startContext before pushing a series of arguments for a given template.
| name | name of variable |
| val | pointer to ElemVariable |
| e | element marker for variable |
| void VariablesStack::pushVariable | ( | const XalanQName & | name, |
| const XObjectPtr & | val, | ||
| const ElemTemplateElement * | e | ||
| ) |
Push a named variable onto the processor variable stack.
Don't forget to call startContext before pushing a series of arguments for a given template.
| name | name of variable |
| val | pointer to XObject value |
| e | element marker for variable |
| void VariablesStack::reset | ( | ) |
Reset the stack.
| void VariablesStack::resetParams | ( | ) |
Reset all params in the current stack frame.
| void VariablesStack::setCurrentStackFrameIndex | ( | size_type | currentStackFrameIndex = ~0u | ) |
Set the top of the stack frame from where a search for a variable or param should take place.
Calling with no parameter will cause the index to be set to the size of the stack.
| currentStackFrameIndex | new value of index |
| void VariablesStack::start | ( | ) |
Mark the top of the stack.
| void VariablesStack::unmarkGlobalStackFrame | ( | ) |
Clear the marking of the global stack frame.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
|
Xalan-C++ XSLT Processor Version 1.10 |
|
|