Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.11


XalanSourceTreeDocumentFragmentAllocator.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(XALANSOURCETREEDOCUMENTFRAGMENTALLOCATOR_INCLUDE_GUARD_12455133)
20 #define XALANSOURCETREEDOCUMENTFRAGMENTALLOCATOR_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  XalanSourceTreeDocumentFragmentAllocator(MemoryManager& theManager, size_type theBlockCount);
56 
58 
59  /**
60  * Create a XalanSourceTreeDocumentFragment object.
61  *
62  * @param theValue The constructor parameter
63  *
64  * @return pointer to a node
65  */
66  data_type*
67  create(XalanSourceTreeDocument& theValue);
68 
69  /**
70  * Create an XalanSourceTreeDocumentFragment object.
71  *
72  * @param theSource source instance
73  *
74  * @return pointer to a node
75  */
76  data_type*
77  create(const data_type& theSource);
78 
79  /**
80  * Delete an XalanSourceTreeDocumentFragment object from allocator.
81  */
82  bool
83  destroy(data_type* theObject);
84 
85  /**
86  * Determine if an object is owned by the allocator...
87  */
88  bool
89  ownsObject(const data_type* theObject)
90  {
91  return m_allocator.ownsObject(theObject);
92  }
93 
94  /**
95  * Delete all XalanSourceTreeDocumentFragment objects from allocator.
96  */
97  void
98  reset();
99 
100  /**
101  * Get the number of ArenaBlocks currently allocated.
102  *
103  * @return The number of blocks.
104  */
105  size_type
107  {
108  return m_allocator.getBlockCount();
109  }
110 
111  /**
112  * Get size of an ArenaBlock, that is, the number
113  * of objects in each block.
114  *
115  * @return The size of the block
116  */
117  size_type
118  getBlockSize() const
119  {
120  return m_allocator.getBlockSize();
121  }
122 
123 private:
124 
125  // Not implemented...
127 
130 
131  // Data members...
132  ArenaAllocatorType m_allocator;
133 };
134 
135 
136 
137 XALAN_CPP_NAMESPACE_END
138 
139 
140 
141 #endif // XALANSOURCETREEDOCUMENTFRAGMENTALLOCATOR_INCLUDE_GUARD_12455133
ReusableArenaBlockType::size_type size_type
#define XALAN_XSLT_EXPORT
size_type getBlockCount() const
Get the number of ArenaBlocks currently allocated.
bool ownsObject(const data_type *theObject)
Determine if an object is owned by the allocator...
size_type getBlockSize() 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