Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

VariablesStack Class Reference

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

#include <VariablesStack.hpp>

List of all members.

Public Types

Public Methods


Detailed Description

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


Member Typedef Documentation

typedef XalanVector< const ElemTemplateElement *> VariablesStack::ElemTemplateElementStackType<const ElemTemplateElement*>
 

typedef XalanVector< ParamsVectorEntry > VariablesStack::ParamsVectorType<ParamsVectorEntry>
 

typedef XalanVector< const ElemVariable *> VariablesStack::RecursionGuardStackType<const ElemVariable*>
 

typedef XalanVector< StackEntry > VariablesStack::VariableStackStackType<StackEntry>
 

typedef unsigned long VariablesStack::size_type
 


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

class CommitPushElementFrame [friend]
 

class CommitPushParams [friend]
 

class EnsurePop [friend]
 

class PushParamFunctor [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.

dot

Xalan-C++ XSLT Processor Version 1.10
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.

Apache Logo