SourceForge.net Logo
StackFrame.hpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2001, 2008,
3 * DecisionSoft Limited. All rights reserved.
4 * Copyright (c) 2004, 2015 Oracle and/or its affiliates. All rights reserved.
5 *
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19
20#ifndef _STACKFRAME_HPP
21#define _STACKFRAME_HPP
22
23#include <string>
24
25#include <xqilla/framework/XQillaExport.hpp>
26#include <xqilla/items/Item.hpp>
27
28#include <xercesc/util/XercesDefs.hpp>
29
30class ASTNode;
31class TupleNode;
32class LocationInfo;
33class DynamicContext;
34class EventHandler;
35class Sequence;
36class VariableStore;
37
38XERCES_CPP_NAMESPACE_BEGIN
39class DOMXPathNSResolver;
40XERCES_CPP_NAMESPACE_END
41
45class XQILLA_API StackFrame
46{
47public:
48 virtual ~StackFrame() {}
49
50 const LocationInfo *getLocationInfo() const { return location_; }
51 const StackFrame *getPreviousFrame() const { return prev_; }
52
53 virtual Sequence query(const XMLCh *query) const;
54 virtual void query(const XMLCh *query, EventHandler *events) const;
55
56 virtual const ASTNode *getASTNode() const = 0;
57 virtual const TupleNode *getTupleNode() const = 0;
58 virtual std::string getQueryPlan() const = 0;
59
60protected:
61 StackFrame(const LocationInfo *location, DynamicContext *context);
62
64
70 const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver_;
71 const XMLCh *defaultElementNS_;
72
74
75private:
76 StackFrame(const StackFrame &);
77 StackFrame &operator=(const StackFrame&);
78};
79
80#endif
The execution time dynamic context interface.
Definition DynamicContext.hpp:39
Definition EventHandler.hpp:30
A class that gives records a location in the query.
Definition LocationInfo.hpp:30
An eagerly evaluated result of a query execution.
Definition Sequence.hpp:40
A class that represents an item in a query call stack.
Definition StackFrame.hpp:46
virtual Sequence query(const XMLCh *query) const
const LocationInfo * getLocationInfo() const
Definition StackFrame.hpp:50
const StackFrame * getPreviousFrame() const
Definition StackFrame.hpp:51
const XMLCh * defaultElementNS_
Definition StackFrame.hpp:71
virtual const ASTNode * getASTNode() const =0
size_t contextSize_
Definition StackFrame.hpp:68
virtual std::string getQueryPlan() const =0
virtual void query(const XMLCh *query, EventHandler *events) const
const xercesc::DOMXPathNSResolver * nsResolver_
Definition StackFrame.hpp:70
size_t contextPosition_
Definition StackFrame.hpp:67
DynamicContext * context_
Definition StackFrame.hpp:65
const StackFrame * prev_
Definition StackFrame.hpp:73
Item::Ptr contextItem_
Definition StackFrame.hpp:66
StackFrame(const LocationInfo *location, DynamicContext *context)
virtual const TupleNode * getTupleNode() const =0
const LocationInfo * location_
Definition StackFrame.hpp:63
virtual ~StackFrame()
Definition StackFrame.hpp:48
const VariableStore * variables_
Definition StackFrame.hpp:69
The pure virtual base class for accessing variables at runtime.
Definition VariableStore.hpp:32