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-2008
5  * Oracle. All rights reserved.
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  * $Id: MessageListener.hpp 475 2008-01-08 18:47:44Z jpcs $
20  */
21 
22 #ifndef _STACKFRAME_HPP
23 #define _STACKFRAME_HPP
24 
25 #include <string>
26 
27 #include <xqilla/framework/XQillaExport.hpp>
28 #include <xqilla/items/Item.hpp>
29 
30 #include <xercesc/util/XercesDefs.hpp>
31 
32 class ASTNode;
33 class TupleNode;
34 class LocationInfo;
35 class DynamicContext;
36 class EventHandler;
37 class Sequence;
38 class VariableStore;
39 
40 XERCES_CPP_NAMESPACE_BEGIN
41 class DOMXPathNSResolver;
42 XERCES_CPP_NAMESPACE_END
43 
47 class XQILLA_API StackFrame
48 {
49 public:
50  virtual ~StackFrame() {}
51 
52  const LocationInfo *getLocationInfo() const { return location_; }
53  const StackFrame *getPreviousFrame() const { return prev_; }
54 
55  virtual Sequence query(const XMLCh *query) const;
56  virtual void query(const XMLCh *query, EventHandler *events) const;
57 
58  virtual const ASTNode *getASTNode() const = 0;
59  virtual const TupleNode *getTupleNode() const = 0;
60  virtual std::string getQueryPlan() const = 0;
61 
62 protected:
63  StackFrame(const LocationInfo *location, DynamicContext *context);
64 
66 
70  size_t contextSize_;
72  const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver_;
73  const XMLCh *defaultElementNS_;
74 
75  const StackFrame *prev_;
76 
77 private:
78  StackFrame(const StackFrame &);
79  StackFrame &operator=(const StackFrame&);
80 };
81 
82 #endif
DynamicContext * context_
Definition: StackFrame.hpp:67
Definition: EventHandler.hpp:31
A class that represents an item in a query call stack.
Definition: StackFrame.hpp:47
const LocationInfo * getLocationInfo() const
Definition: StackFrame.hpp:52
size_t contextPosition_
Definition: StackFrame.hpp:69
virtual ~StackFrame()
Definition: StackFrame.hpp:50
const XMLCh * defaultElementNS_
Definition: StackFrame.hpp:73
const StackFrame * prev_
Definition: StackFrame.hpp:75
const VariableStore * variables_
Definition: StackFrame.hpp:71
const LocationInfo * location_
Definition: StackFrame.hpp:65
const xercesc::DOMXPathNSResolver * nsResolver_
Definition: StackFrame.hpp:72
The execution time dynamic context interface.
Definition: DynamicContext.hpp:39
The pure virtual base class for accessing variables at runtime.
Definition: VariableStore.hpp:33
A class that gives records a location in the query.
Definition: LocationInfo.hpp:31
const StackFrame * getPreviousFrame() const
Definition: StackFrame.hpp:53
An eagerly evaluated result of a query execution.
Definition: Sequence.hpp:41
Item::Ptr contextItem_
Definition: StackFrame.hpp:68
size_t contextSize_
Definition: StackFrame.hpp:70