include
xqilla
debug
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
30
class
ASTNode;
31
class
TupleNode;
32
class
LocationInfo
;
33
class
DynamicContext
;
34
class
EventHandler
;
35
class
Sequence
;
36
class
VariableStore
;
37
38
XERCES_CPP_NAMESPACE_BEGIN
39
class
DOMXPathNSResolver;
40
XERCES_CPP_NAMESPACE_END
41
45
class
XQILLA_API
StackFrame
46
{
47
public
:
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
60
protected
:
61
StackFrame
(
const
LocationInfo
*location,
DynamicContext
*context);
62
63
const
LocationInfo
*
location_
;
64
65
DynamicContext
*
context_
;
66
Item::Ptr
contextItem_
;
67
size_t
contextPosition_
;
68
size_t
contextSize_
;
69
const
VariableStore
*
variables_
;
70
const
XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *
nsResolver_
;
71
const
XMLCh *
defaultElementNS_
;
72
73
const
StackFrame
*
prev_
;
74
75
private
:
76
StackFrame
(
const
StackFrame
&);
77
StackFrame
&operator=(
const
StackFrame
&);
78
};
79
80
#endif
StackFrame
A class that represents an item in a query call stack.
Definition:
StackFrame.hpp:45
StackFrame::nsResolver_
const xercesc::DOMXPathNSResolver * nsResolver_
Definition:
StackFrame.hpp:70
RefCountPointer< const Item >
DynamicContext
The execution time dynamic context interface.
Definition:
DynamicContext.hpp:38
StackFrame::contextPosition_
size_t contextPosition_
Definition:
StackFrame.hpp:67
StackFrame::location_
const LocationInfo * location_
Definition:
StackFrame.hpp:63
StackFrame::getLocationInfo
const LocationInfo * getLocationInfo() const
Definition:
StackFrame.hpp:50
Sequence
An eagerly evaluated result of a query execution.
Definition:
Sequence.hpp:39
StackFrame::~StackFrame
virtual ~StackFrame()
Definition:
StackFrame.hpp:48
StackFrame::context_
DynamicContext * context_
Definition:
StackFrame.hpp:65
StackFrame::defaultElementNS_
const XMLCh * defaultElementNS_
Definition:
StackFrame.hpp:71
LocationInfo
A class that gives records a location in the query.
Definition:
LocationInfo.hpp:29
StackFrame::variables_
const VariableStore * variables_
Definition:
StackFrame.hpp:69
StackFrame::prev_
const StackFrame * prev_
Definition:
StackFrame.hpp:73
StackFrame::contextSize_
size_t contextSize_
Definition:
StackFrame.hpp:68
EventHandler
Definition:
EventHandler.hpp:29
VariableStore
The pure virtual base class for accessing variables at runtime.
Definition:
VariableStore.hpp:31
StackFrame::contextItem_
Item::Ptr contextItem_
Definition:
StackFrame.hpp:66
Item.hpp
StackFrame::getPreviousFrame
const StackFrame * getPreviousFrame() const
Definition:
StackFrame.hpp:51
Generated by
1.8.17