Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.9

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

VariablesStack Class Reference

Defines a class to keep track of a stack for macro arguments. More...

Collaboration diagram for VariablesStack:

Collaboration graph
[legend]
List of all members.

Public Types

Public Member Functions

Friends


Detailed Description

Defines a class to keep track of a stack for macro arguments.


Member Typedef Documentation

typedef XalanVector<const ElemTemplateElement*> VariablesStack::ElemTemplateElementStackType
 

typedef XalanVector<ParamsVectorEntry> VariablesStack::ParamsVectorType
 

typedef XalanVector<const ElemVariable*> VariablesStack::RecursionGuardStackType
 

typedef unsigned long VariablesStack::size_type
 

typedef XalanVector<StackEntry> VariablesStack::VariableStackStackType
 


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
eDefaultStackSize 


Constructor & Destructor Documentation

VariablesStack::VariablesStack MemoryManagerType theManager  )  [explicit]
 

Constructor for a variable stack.

VariablesStack::~VariablesStack  ) 
 


Member Function Documentation

size_type VariablesStack::getCurrentStackFrameIndex  )  const
 

Get the top of the stack frame from where a search for a variable or param should take place.

Returns:
current value of index

size_type VariablesStack::getGlobalStackFrameIndex  )  const
 

Get the top of the global stack frame.

Returns:
current value of index

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.

Parameters:
theName name of variable
exeuctionContext the current execution context
fNameFound set to true if the name was found, false if not.
Returns:
pointer to XObject for variable

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.

Parameters:
qname name of variable
exeuctionContext the current execution context
fNameFound set to true if the name was found, false if not.
Returns:
pointer to the corresponding XObject

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.

Parameters:
elem the element

void VariablesStack::pushContextMarker  ) 
 

Push a context marker onto the stack to let us know when to stop searching for a var.

Parameters:
caller caller node
sourceNode source node

void VariablesStack::pushElementFrame const ElemTemplateElement elem  ) 
 

Push a frame marker for an element.

Parameters:
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.

Parameters:
theParam The vector containing the parameters.

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.

Parameters:
name name of variable
val pointer to XObject value
e element marker for variable

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.

Parameters:
name name of variable
val pointer to ElemVariable
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.

Parameters:
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.


Friends And Related Function Documentation

friend class CommitPushElementFrame [friend]
 

friend class CommitPushParams [friend]
 

friend class EnsurePop [friend]
 

friend class PushParamFunctor [friend]
 

friend class SetAndRestoreForceGlobalSearch [friend]
 


The documentation for this class was generated from the following file:

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.9
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.