Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.11


XStringAdapterAllocator.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(XSTRINGADAPTERALLOCATOR_INCLUDE_GUARD_1357924680)
20 #define XSTRINGADAPTERALLOCATOR_INCLUDE_GUARD_1357924680
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  */
56  MemoryManager& theManager,
57  size_type theBlockCount);
58 
60 
61  /**
62  * Create an XString object from a string.
63  *
64  * @param theXObject The source XObject
65  *
66  * @return a pointer to string
67  */
68  string_type*
69  createString(
70  const XObjectPtr& theXObject,
71  XPathExecutionContext& theExecutionContext);
72 
73 
74  /**
75  * Delete an XStringAdapter object from allocator.
76  */
77  bool
78  destroy(string_type* theString);
79 
80  /**
81  * Determine if an object is owned by the allocator...
82  */
83  bool
84  ownsObject(const string_type* theObject)
85  {
86  return m_allocator.ownsObject(theObject);
87  }
88 
89  /**
90  * Delete all XStringAdapter objects from allocator.
91  */
92  void
93  reset();
94 
95  /**
96  * Get size of an ArenaBlock, that is, the number
97  * of objects in each block.
98  *
99  * @return The size of the block
100  */
101  size_type
103  {
104  return m_allocator.getBlockCount();
105  }
106 
107  /**
108  * Get the number of ArenaBlocks currently allocated.
109  *
110  * @return The number of blocks.
111  */
112  size_type
113  getBlockSize() const
114  {
115  return m_allocator.getBlockSize();
116  }
117 
118 private:
119 
120  // Not implemented...
122 
124  operator=(const XStringAdapterAllocator&);
125 
126  // Data members...
127  ArenaAllocatorType m_allocator;
128 };
129 
130 
131 
132 XALAN_CPP_NAMESPACE_END
133 
134 
135 
136 #endif // XSTRINGADAPTERALLOCATOR_INCLUDE_GUARD_1357924680
bool ownsObject(const string_type *theObject)
Determine if an object is owned by the allocator...
Class to hold XObjectPtr return types.
Definition: XObject.hpp:883
ReusableArenaAllocator< string_type > ArenaAllocatorType
XALAN_CPP_NAMESPACE_BEGIN typedef size_t size_type
Definition: XalanMap.hpp:46
ArenaAllocatorType::size_type size_type
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