Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.11


XNodeSetNodeProxyAllocator.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(XNODESETNODEPROXYALLOCATOR_INCLUDE_GUARD_12455133)
20 #define XNODESETNODEPROXYALLOCATOR_INCLUDE_GUARD_12455133
21 
22 
23 
24 // Base include file. Must be first.
26 
27 
28 
30 
31 
32 
34 
35 
36 
37 XALAN_CPP_NAMESPACE_BEGIN
38 
39 
40 
42 {
43 public:
44 
46 
49 
50  /**
51  * Construct an instance that will allocate blocks of the specified size.
52  *
53  * @param theBlockSize The block size.
54  */
55  XNodeSetNodeProxyAllocator(MemoryManager& theManager, size_type theBlockCount);
56 
58 
59  /**
60  * Create an object using the allocator.
61  *
62  * @param value source node
63  *
64  * @return pointer to instance
65  */
66  nodeset_type*
67  create(XalanNode* value);
68 
69  /**
70  * Clone an XNodeSet object.
71  *
72  * @param value source instance
73  *
74  * @return pointer to a new instance
75  */
76  nodeset_type*
77  clone(const XNodeSetNodeProxy& value);
78 
79  /**
80  * Delete an XNodeSet object from allocator.
81  */
82  bool
83  destroy(nodeset_type* theNodeSet);
84 
85  /**
86  * Determine if an object is owned by the allocator...
87  */
88  bool
89  ownsObject(const nodeset_type* theObject)
90  {
91  return m_allocator.ownsObject(theObject);
92  }
93 
94  /**
95  * Delete all XNodeSet objects from allocator.
96  */
97  void
98  reset();
99 
100  /**
101  * Get size of an ArenaBlock, that is, the number
102  * of objects in each block.
103  *
104  * @return The size of the block
105  */
106  size_type
108  {
109  return m_allocator.getBlockCount();
110  }
111 
112  /**
113  * Get the number of ArenaBlocks currently allocated.
114  *
115  * @return The number of blocks.
116  */
117  size_type
118  getBlockSize() const
119  {
120  return m_allocator.getBlockSize();
121  }
122 
123 
124 private:
125 
126  // Not implemented...
128 
130  operator=(const XNodeSetNodeProxyAllocator&);
131 
132  // Data members...
133  ArenaAllocatorType m_allocator;
134 };
135 
136 
137 
138 XALAN_CPP_NAMESPACE_END
139 
140 
141 
142 #endif // XNODESETNODEPROXYALLOCATOR_INCLUDE_GUARD_12455133
ReusableArenaBlockType::size_type size_type
ArenaAllocatorType::size_type size_type
bool ownsObject(const nodeset_type *theObject)
Determine if an object is owned by the allocator...
ReusableArenaAllocator< nodeset_type > ArenaAllocatorType
Class to hold XPath return types.
size_type getBlockSize() const
Get the number of ArenaBlocks currently allocated.
#define XALAN_XPATH_EXPORT
size_type getBlockCount() const
Get size of an ArenaBlock, that is, the number of objects in each block.

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.11
Copyright © 1999-2012 The Apache Software Foundation.
All Rights Reserved.

Apache Logo