Xalan-C++ API Reference
1.12.0
xalanc
XercesParserLiaison
XercesWrapperNavigatorAllocator.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(XERCESWRAPPERNAVIGATORALLOCATOR_INCLUDE_GUARD_12455133)
20
#define XERCESWRAPPERNAVIGATORALLOCATOR_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/XercesWrapperNavigator.hpp
>
33
34
35
36
namespace
XALAN_CPP_NAMESPACE
{
37
38
39
40
class
XALAN_XERCESPARSERLIAISON_EXPORT
XercesWrapperNavigatorAllocator
41
{
42
public
:
43
44
typedef
XercesWrapperNavigator
ObjectType
;
45
46
#if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS)
47
typedef
ArenaBlock<ObjectType>
ArenaBlockType;
48
49
typedef
ArenaAllocator
<
ObjectType
,
50
ArenaBlockType>
ArenaAllocatorType
;
51
#else
52
typedef
ArenaAllocator<ObjectType>
ArenaAllocatorType
;
53
#endif
54
55
typedef
ArenaAllocatorType::size_type
size_type
;
56
57
/**
58
* Construct an instance that will allocate blocks of the specified size.
59
*
60
* @param theBlockSize The block size.
61
*/
62
XercesWrapperNavigatorAllocator
(MemoryManager& theManager,
63
size_type
theBlockCount);
64
65
~
XercesWrapperNavigatorAllocator
();
66
67
/**
68
* Create a XercesWrapperNavigator instance.
69
*
70
* @param theOwnerDocument The XercesDocumentWrappter instance for this instance.
71
*
72
* @return pointer to the instance
73
*/
74
ObjectType
*
75
create(
XercesDocumentWrapper
* theOwnerDocument);
76
77
/**
78
* Delete all objects from allocator.
79
*/
80
void
81
reset();
82
83
/**
84
* Get size of an ArenaBlock, that is, the number
85
* of objects in each block.
86
*
87
* @return The size of the block
88
*/
89
size_type
90
getBlockCount
()
const
91
{
92
return
m_allocator.getBlockCount();
93
}
94
95
/**
96
* Get the number of ArenaBlocks currently allocated.
97
*
98
* @return The number of blocks.
99
*/
100
size_type
101
getBlockSize
()
const
102
{
103
return
m_allocator.getBlockSize();
104
}
105
106
private
:
107
108
// Not implemented...
109
XercesWrapperNavigatorAllocator
(
const
XercesWrapperNavigatorAllocator
&);
110
111
XercesWrapperNavigatorAllocator
&
112
operator=(
const
XercesWrapperNavigatorAllocator
&);
113
114
// Data members...
115
ArenaAllocatorType m_allocator;
116
};
117
118
119
120
}
121
122
123
124
#endif // XERCESWRAPPERNAVIGATORALLOCATOR_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::XercesWrapperNavigatorAllocator::getBlockCount
size_type getBlockCount() const
Get size of an ArenaBlock, that is, the number of objects in each block.
Definition:
XercesWrapperNavigatorAllocator.hpp:90
xalanc::XercesWrapperNavigatorAllocator::getBlockSize
size_type getBlockSize() const
Get the number of ArenaBlocks currently allocated.
Definition:
XercesWrapperNavigatorAllocator.hpp:101
xalanc::XercesWrapperNavigatorAllocator::ObjectType
XercesWrapperNavigator ObjectType
Definition:
XercesWrapperNavigatorAllocator.hpp:44
xalanc::size_type
size_t size_type
Definition:
XalanMap.hpp:46
xalanc::XercesWrapperNavigatorAllocator::size_type
ArenaAllocatorType::size_type size_type
Definition:
XercesWrapperNavigatorAllocator.hpp:55
xalanc::ArenaBlock< ObjectType >
xalanc::ArenaAllocator
Definition:
ArenaAllocator.hpp:47
ArenaAllocator.hpp
xalanc::XercesWrapperNavigatorAllocator
Definition:
XercesWrapperNavigatorAllocator.hpp:40
XercesParserLiaisonDefinitions.hpp
XercesWrapperNavigator.hpp
XALAN_XERCESPARSERLIAISON_EXPORT
#define XALAN_XERCESPARSERLIAISON_EXPORT
Definition:
XercesParserLiaisonDefinitions.hpp:39
xalanc::XercesWrapperNavigator
Definition:
XercesWrapperNavigator.hpp:55
xalanc::XercesWrapperNavigatorAllocator::ArenaAllocatorType
ArenaAllocator< ObjectType > ArenaAllocatorType
Definition:
XercesWrapperNavigatorAllocator.hpp:52
xalanc::XercesDocumentWrapper
Definition:
XercesDocumentWrapper.hpp:77
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