Xalan-C++ API Reference
1.12.0
xalanc
XercesParserLiaison
XercesTextWrapperAllocator.hpp
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one
3
* or more contributor license agreements. See the NOTICE file
4
* distributed with this work for additional information
5
* regarding copyright ownership. The ASF licenses this file
6
* to you under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
19
#if !defined(XERCESTEXTWRAPPERALLOCATOR_INCLUDE_GUARD_12455133)
20
#define XERCESTEXTWRAPPERALLOCATOR_INCLUDE_GUARD_12455133
21
22
23
24
#include <
xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp
>
25
26
27
28
#include <
xalanc/PlatformSupport/ArenaAllocator.hpp
>
29
30
31
32
#include <
xalanc/XercesParserLiaison/XercesTextWrapper.hpp
>
33
#include <
xalanc/XercesParserLiaison/XercesWrapperTypes.hpp
>
34
35
36
37
namespace
XALAN_CPP_NAMESPACE
{
38
39
40
41
class
XALAN_XERCESPARSERLIAISON_EXPORT
XercesTextWrapperAllocator
42
{
43
public
:
44
45
typedef
XercesTextWrapper
ObjectType
;
46
47
#if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS)
48
typedef
ArenaBlock<ObjectType>
ArenaBlockType;
49
50
typedef
ArenaAllocator
<
ObjectType
,
51
ArenaBlockType>
ArenaAllocatorType
;
52
#else
53
typedef
ArenaAllocator<ObjectType>
ArenaAllocatorType
;
54
#endif
55
56
typedef
ArenaAllocatorType::size_type
size_type
;
57
58
/**
59
* Construct an instance that will allocate blocks of the specified size.
60
*
61
* @param theBlockSize The block size.
62
*/
63
XercesTextWrapperAllocator
(MemoryManager& theManager,
size_type
theBlockCount);
64
65
~
XercesTextWrapperAllocator
();
66
67
/**
68
* Create a XercesTextWrapper instance.
69
*
70
* @param theXercesText The Xerces text node
71
* @param theNavigator The navigator for this instance.
72
*
73
* @return pointer to the instance
74
*/
75
ObjectType
*
76
create(
77
const
DOMTextType
* theXercesText,
78
const
XercesWrapperNavigator
& theNavigator);
79
80
/**
81
* Delete all objects from allocator.
82
*/
83
void
84
reset();
85
86
/**
87
* Get size of an ArenaBlock, that is, the number
88
* of objects in each block.
89
*
90
* @return The size of the block
91
*/
92
size_type
93
getBlockCount
()
const
94
{
95
return
m_allocator.getBlockCount();
96
}
97
98
/**
99
* Get the number of ArenaBlocks currently allocated.
100
*
101
* @return The number of blocks.
102
*/
103
size_type
104
getBlockSize
()
const
105
{
106
return
m_allocator.getBlockSize();
107
}
108
109
private
:
110
111
// Not implemented...
112
XercesTextWrapperAllocator
(
const
XercesTextWrapperAllocator
&);
113
114
XercesTextWrapperAllocator
&
115
operator=(
const
XercesTextWrapperAllocator
&);
116
117
// Data members...
118
ArenaAllocatorType m_allocator;
119
};
120
121
122
123
}
124
125
126
127
#endif // XERCESTEXTWRAPPERALLOCATOR_INCLUDE_GUARD_12455133
xalanc::ArenaAllocator< ObjectType >::size_type
ArenaBlock< ObjectType > ::size_type size_type
Definition:
ArenaAllocator.hpp:55
XALAN_CPP_NAMESPACE
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
Definition:
XalanVersion.hpp:76
xalanc::XercesTextWrapperAllocator::ArenaAllocatorType
ArenaAllocator< ObjectType > ArenaAllocatorType
Definition:
XercesTextWrapperAllocator.hpp:53
xalanc::XercesTextWrapperAllocator
Definition:
XercesTextWrapperAllocator.hpp:41
xalanc::XercesTextWrapperAllocator::ObjectType
XercesTextWrapper ObjectType
Definition:
XercesTextWrapperAllocator.hpp:45
xalanc::size_type
size_t size_type
Definition:
XalanMap.hpp:46
xalanc::XercesTextWrapperAllocator::size_type
ArenaAllocatorType::size_type size_type
Definition:
XercesTextWrapperAllocator.hpp:56
xalanc::XercesTextWrapperAllocator::getBlockCount
size_type getBlockCount() const
Get size of an ArenaBlock, that is, the number of objects in each block.
Definition:
XercesTextWrapperAllocator.hpp:93
xalanc::ArenaBlock< ObjectType >
XercesTextWrapper.hpp
xalanc::XercesTextWrapper
Definition:
XercesTextWrapper.hpp:43
xalanc::ArenaAllocator
Definition:
ArenaAllocator.hpp:47
ArenaAllocator.hpp
XercesParserLiaisonDefinitions.hpp
XALAN_XERCESPARSERLIAISON_EXPORT
#define XALAN_XERCESPARSERLIAISON_EXPORT
Definition:
XercesParserLiaisonDefinitions.hpp:39
xalanc::DOMTextType
xercesc::DOMText DOMTextType
Definition:
XercesWrapperTypes.hpp:69
XercesWrapperTypes.hpp
xalanc::XercesWrapperNavigator
Definition:
XercesWrapperNavigator.hpp:55
xalanc::XercesTextWrapperAllocator::getBlockSize
size_type getBlockSize() const
Get the number of ArenaBlocks currently allocated.
Definition:
XercesTextWrapperAllocator.hpp:104
Copyright © 1999-2020 The Apache Software Foundation. All Rights Reserved.
Generated on Sun May 31 2020 10:37:19 for Xalan-C++ API Reference by
1.8.17