include
xqilla
runtime
Sequence.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 _SEQUENCE_HPP
21
#define _SEQUENCE_HPP
22
23
#include <vector>
24
25
#include <xqilla/framework/XQillaExport.hpp>
26
#include <
xqilla/items/ATDecimalOrDerived.hpp
>
27
#include <
xqilla/framework/XPath2MemoryManager.hpp
>
28
29
#include <
xercesc/util/XMemory.hpp
>
30
#include <
xercesc/util/PlatformUtils.hpp
>
31
32
class
DynamicContext
;
33
34
typedef
std::vector<Item::Ptr, XQillaAllocator<Item::Ptr> >
VectorOfItems
;
35
39
class
XQILLA_API
Sequence
:
public
XERCES_CPP_NAMESPACE_QUALIFIER XMemory
40
{
41
42
public
:
43
typedef
VectorOfItems::iterator
iterator
;
44
typedef
VectorOfItems::const_iterator
const_iterator
;
45
typedef
VectorOfItems::reverse_iterator
reverse_iterator
;
46
typedef
VectorOfItems::const_reverse_iterator
const_reverse_iterator
;
47
48
// constructor that takes one Item
49
Sequence
(
const
Item::Ptr
&item, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
50
XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
51
// constructor that creates a empty sequence
52
Sequence
(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
53
XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
55
Sequence
(
size_t
n, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
56
XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
57
Sequence
(
const
Sequence
&,
size_t
start, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
58
XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
59
// copy constructor
60
Sequence
(
const
Sequence
&, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr);
61
// copy constructor
62
Sequence
(
const
Sequence
&);
63
Sequence
&operator=(
const
Sequence
&);
64
65
~
Sequence
();
66
67
void
clear();
68
69
const
Item::Ptr
&first()
const
;
70
const
Item::Ptr
&second()
const
;
71
73
Sequence::iterator
begin(
void
);
74
Sequence::const_iterator
begin(
void
)
const
;
75
77
Sequence::iterator
end(
void
);
78
Sequence::const_iterator
end(
void
)
const
;
79
81
Sequence::reverse_iterator
rbegin(
void
);
82
Sequence::const_reverse_iterator
rbegin(
void
)
const
;
83
84
Sequence::reverse_iterator
rend(
void
);
85
Sequence::const_reverse_iterator
rend(
void
)
const
;
86
88
size_t
getLength(
void
)
const
;
89
91
const
Item::Ptr
&item(
size_t
index)
const
;
93
const
Item::Ptr
&item(
const
ATDecimalOrDerived::Ptr
&index)
const
;
94
96
void
addItem(
const
Item::Ptr
&item);
97
99
void
addItemFront(
const
Item::Ptr
&item);
100
102
void
joinSequence(
const
Sequence
& s);
103
105
bool
isEmpty()
const
;
106
108
void
sortIntoDocumentOrder(
const
DynamicContext
*context);
109
111
void
sortWithCollation(
const
Collation
*collation,
const
DynamicContext
*context);
112
113
private
:
114
VectorOfItems
_itemList;
115
116
friend
class
SequenceResult;
117
};
118
119
#endif
Sequence::const_reverse_iterator
VectorOfItems::const_reverse_iterator const_reverse_iterator
Definition:
Sequence.hpp:46
RefCountPointer< const Item >
DynamicContext
The execution time dynamic context interface.
Definition:
DynamicContext.hpp:38
Sequence::reverse_iterator
VectorOfItems::reverse_iterator reverse_iterator
Definition:
Sequence.hpp:45
Sequence::iterator
VectorOfItems::iterator iterator
Definition:
Sequence.hpp:43
Collation
Definition:
Collation.hpp:29
PlatformUtils.hpp
ATDecimalOrDerived.hpp
Sequence
An eagerly evaluated result of a query execution.
Definition:
Sequence.hpp:39
VectorOfItems
std::vector< Item::Ptr, XQillaAllocator< Item::Ptr > > VectorOfItems
Definition:
Sequence.hpp:32
XPath2MemoryManager.hpp
Sequence::const_iterator
VectorOfItems::const_iterator const_iterator
Definition:
Sequence.hpp:44
XMemory.hpp
Generated by
1.8.17