blob: 5e7ea27db6bef60a3793bc1afdc31d6d717abdc4 [file] [log] [blame]
<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD>
<BODY>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center">The Xalan C++ XSLT Processor Version 1.10</h3>
</BODY>
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>XalanMemoryManagement.hpp</h1><a href="XalanMemoryManagement_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>
00002 <font class="comment"> * Copyright 1999-2004 The Apache Software Foundation.</font>
00003 <font class="comment"> *</font>
00004 <font class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</font>
00005 <font class="comment"> * you may not use this file except in compliance with the License.</font>
00006 <font class="comment"> * You may obtain a copy of the License at</font>
00007 <font class="comment"> *</font>
00008 <font class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</font>
00009 <font class="comment"> *</font>
00010 <font class="comment"> * Unless required by applicable law or agreed to in writing, software</font>
00011 <font class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</font>
00012 <font class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</font>
00013 <font class="comment"> * See the License for the specific language governing permissions and</font>
00014 <font class="comment"> * limitations under the License.</font>
00015 <font class="comment"> */</font>
00016 <font class="preprocessor">#if !defined(XALANMEMORYMANAGEMENT_HEADER_GUARD_1357924680)</font>
<a name="l00017"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a0">00017</a> <font class="preprocessor"></font><font class="preprocessor">#define XALANMEMORYMANAGEMENT_HEADER_GUARD_1357924680</font>
00018 <font class="preprocessor"></font>
00019
00020 <font class="comment">// Base include file. Must be first.</font>
00021 <font class="preprocessor">#include &lt;<a class="code" href="PlatformDefinitions_8hpp.html">xalanc/Include/PlatformDefinitions.hpp</a>&gt;</font>
00022
00023
00024
00025 <font class="preprocessor">#include &lt;cstddef&gt;</font>
00026 <font class="preprocessor">#include &lt;new&gt;</font>
00027
00028
00029
00030 <font class="preprocessor">#include &lt;xercesc/framework/MemoryManager.hpp&gt;</font>
00031
00032
00033
00034
00035 XALAN_CPP_NAMESPACE_BEGIN
00036
00037
00038
<a name="l00039"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a5">00039</a> <font class="keyword">typedef</font> XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType;
<a name="l00040"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a6">00040</a> <a class="code" href="XSLTInputSource_8hpp.html#a3">XALAN_USING_XERCES</a>(MemoryManager)
00041
00042
00043
00044 <font class="keyword">class </font>XalanAllocationGuard
00045 {
00046 <font class="keyword">public</font>:
00047
00048 <font class="preprocessor">#if defined(XALAN_STRICT_ANSI_HEADERS)</font>
00049 <font class="preprocessor"></font> <font class="keyword">typedef</font> std::size_t size_type;
00050 <font class="preprocessor">#else</font>
00051 <font class="preprocessor"></font> <font class="keyword">typedef</font> size_t size_type;
00052 <font class="preprocessor">#endif</font>
00053 <font class="preprocessor"></font>
00054 XalanAllocationGuard(
00055 MemoryManager&amp; theMemoryManager,
00056 <font class="keywordtype">void</font>* thePointer) :
00057 m_memoryManager(theMemoryManager),
00058 m_pointer(thePointer)<font class="keyword"></font>
00059 <font class="keyword"> </font>{
00060 }
00061
00062 XalanAllocationGuard(
00063 MemoryManager&amp; theMemoryManager,
00064 size_type theSize) :
00065 m_memoryManager(theMemoryManager),
00066 m_pointer(theMemoryManager.allocate(theSize))
00067 {
00068 }
00069
00070 ~XalanAllocationGuard()<font class="keyword"></font>
00071 <font class="keyword"> </font>{
00072 <font class="keywordflow">if</font> (m_pointer != 0)
00073 {
00074 m_memoryManager.deallocate(m_pointer);
00075 }
00076 }
00077
00078 <font class="keywordtype">void</font>*
00079 get()<font class="keyword"> const</font>
00080 <font class="keyword"> </font>{
00081 <font class="keywordflow">return</font> m_pointer;
00082 }
00083
00084 <font class="keywordtype">void</font>
00085 release()<font class="keyword"></font>
00086 <font class="keyword"> </font>{
00087 m_pointer = 0;
00088 }
00089
00090 <font class="keyword">private</font>:
00091
00092 <font class="comment">// Data members...</font>
00093 MemoryManager&amp; m_memoryManager;
00094
00095 <font class="keywordtype">void</font>* m_pointer;
00096 };
00097
00098
00099
00100 template&lt;class Type&gt;
00101 <font class="keywordtype">void</font>
<a name="l00102"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a7">00102</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a10">XalanDestroy</a>(Type&amp; theArg)<font class="keyword"></font>
00103 <font class="keyword"></font>{
00104 theArg.~Type();
00105 }
00106
00107
00108
00109 template&lt;class Type&gt;
00110 <font class="keywordtype">void</font>
<a name="l00111"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a8">00111</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a10">XalanDestroy</a>(Type* theArg)<font class="keyword"></font>
00112 <font class="keyword"></font>{
00113 <font class="keywordflow">if</font> (theArg != 0)
00114 {
00115 theArg-&gt;~Type();
00116 }
00117 }
00118
00119
00120
00121 template&lt;class Type&gt;
00122 <font class="keywordtype">void</font>
<a name="l00123"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a9">00123</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a10">XalanDestroy</a>(
00124 MemoryManager&amp; theMemoryManager,
00125 Type* theArg)<font class="keyword"></font>
00126 <font class="keyword"></font>{
00127 <font class="keywordflow">if</font> (theArg != 0)
00128 {
00129 <a class="code" href="XalanMemoryManagement_8hpp.html#a10">XalanDestroy</a>(*theArg);
00130
00131 theMemoryManager.deallocate(theArg);
00132 }
00133 }
00134
00135
00136
00137 template&lt;class Type&gt;
00138 <font class="keywordtype">void</font>
<a name="l00139"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a10">00139</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a10">XalanDestroy</a>(
00140 MemoryManager&amp; theMemoryManager,
00141 Type&amp; theArg)<font class="keyword"></font>
00142 <font class="keyword"></font>{
00143 <a class="code" href="XalanMemoryManagement_8hpp.html#a10">XalanDestroy</a>(theArg);
00144
00145 theMemoryManager.deallocate(&amp;theArg);
00146 }
00147
00148
00149
00150 template&lt;class Type&gt;
00151 Type*
<a name="l00152"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a11">00152</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a17">XalanConstruct</a>(
00153 MemoryManager&amp; theMemoryManager,
00154 Type*&amp; theInstance)<font class="keyword"></font>
00155 <font class="keyword"></font>{
00156 XalanAllocationGuard theGuard(
00157 theMemoryManager,
00158 <font class="keyword">sizeof</font>(Type));
00159
00160 theInstance =
00161 <font class="keyword">new</font> (theGuard.get()) Type;
00162
00163 theGuard.release();
00164
00165 <font class="keywordflow">return</font> theInstance;
00166 }
00167
00168
00169
00170 <font class="keyword">template</font>&lt;
00171 <font class="keyword">class </font>Type,
00172 <font class="keyword">class </font>Param1Type&gt;
00173 Type*
<a name="l00174"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a12">00174</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a17">XalanConstruct</a>(
00175 MemoryManager&amp; theMemoryManager,
00176 Type*&amp; theInstance,
00177 <font class="keyword">const</font> Param1Type&amp; theParam1)<font class="keyword"></font>
00178 <font class="keyword"></font>{
00179 XalanAllocationGuard theGuard(
00180 theMemoryManager,
00181 <font class="keyword">sizeof</font>(Type));
00182
00183 theInstance =
00184 <font class="keyword">new</font> (theGuard.get()) Type(theParam1);
00185
00186 theGuard.release();
00187
00188 <font class="keywordflow">return</font> theInstance;
00189 }
00190
00191
00192
00193 <font class="keyword">template</font>&lt;
00194 <font class="keyword">class </font>Type,
00195 <font class="keyword">class </font>Param1Type&gt;
00196 Type*
<a name="l00197"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a13">00197</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a17">XalanConstruct</a>(
00198 MemoryManager&amp; theMemoryManager,
00199 Type*&amp; theInstance,
00200 Param1Type&amp; theParam1)<font class="keyword"></font>
00201 <font class="keyword"></font>{
00202 XalanAllocationGuard theGuard(
00203 theMemoryManager,
00204 <font class="keyword">sizeof</font>(Type));
00205
00206 theInstance =
00207 <font class="keyword">new</font> (theGuard.get()) Type(theParam1);
00208
00209 theGuard.release();
00210
00211 <font class="keywordflow">return</font> theInstance;
00212 }
00213
00214
00215
00216 <font class="keyword">template</font>&lt;
00217 <font class="keyword">class </font>Type,
00218 <font class="keyword">class </font>Param1Type,
00219 <font class="keyword">class </font>Param2Type&gt;
00220 Type*
<a name="l00221"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a14">00221</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a17">XalanConstruct</a>(
00222 MemoryManager&amp; theMemoryManager,
00223 Type*&amp; theInstance,
00224 Param1Type&amp; theParam1,
00225 <font class="keyword">const</font> Param2Type&amp; theParam2)<font class="keyword"></font>
00226 <font class="keyword"></font>{
00227 XalanAllocationGuard theGuard(
00228 theMemoryManager,
00229 <font class="keyword">sizeof</font>(Type));
00230
00231 theInstance =
00232 <font class="keyword">new</font> (theGuard.get()) Type(theParam1, theParam2);
00233
00234 theGuard.release();
00235
00236 <font class="keywordflow">return</font> theInstance;
00237 }
00238
00239
00240
00241 <font class="keyword">template</font>&lt;
00242 <font class="keyword">class </font>Type,
00243 <font class="keyword">class </font>Param1Type,
00244 <font class="keyword">class </font>Param2Type,
00245 <font class="keyword">class </font>Param3Type&gt;
00246 Type*
<a name="l00247"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a15">00247</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a17">XalanConstruct</a>(
00248 MemoryManager&amp; theMemoryManager,
00249 Type*&amp; theInstance,
00250 Param1Type&amp; theParam1,
00251 <font class="keyword">const</font> Param2Type&amp; theParam2,
00252 Param3Type&amp; theParam3)<font class="keyword"></font>
00253 <font class="keyword"></font>{
00254 XalanAllocationGuard theGuard(
00255 theMemoryManager,
00256 <font class="keyword">sizeof</font>(Type));
00257
00258 theInstance =
00259 <font class="keyword">new</font> (theGuard.get()) Type(theParam1, theParam2, theParam3);
00260
00261 theGuard.release();
00262
00263 <font class="keywordflow">return</font> theInstance;
00264 }
00265
00266
00267
00268 <font class="keyword">template</font>&lt;
00269 <font class="keyword">class </font>Type,
00270 <font class="keyword">class </font>Param1Type,
00271 <font class="keyword">class </font>Param2Type,
00272 <font class="keyword">class </font>Param3Type,
00273 <font class="keyword">class </font>Param4Type,
00274 <font class="keyword">class </font>Param5Type&gt;
00275 Type*
<a name="l00276"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a16">00276</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a17">XalanConstruct</a>(
00277 MemoryManager&amp; theMemoryManager,
00278 Type*&amp; theInstance,
00279 Param1Type&amp; theParam1,
00280 Param2Type&amp; theParam2,
00281 <font class="keyword">const</font> Param3Type&amp; theParam3,
00282 <font class="keyword">const</font> Param4Type&amp; theParam4,
00283 <font class="keyword">const</font> Param5Type&amp; theParam5)<font class="keyword"></font>
00284 <font class="keyword"></font>{
00285 XalanAllocationGuard theGuard(
00286 theMemoryManager,
00287 <font class="keyword">sizeof</font>(Type));
00288
00289 theInstance =
00290 <font class="keyword">new</font> (theGuard.get()) Type(theParam1, theParam2, theParam3, theParam4, theParam5);
00291
00292 theGuard.release();
00293
00294 <font class="keywordflow">return</font> theInstance;
00295 }
00296
00297
00298
00299 <font class="keyword">template</font>&lt;
00300 <font class="keyword">class </font>Type,
00301 <font class="keyword">class </font>Param1Type,
00302 <font class="keyword">class </font>Param2Type,
00303 <font class="keyword">class </font>Param3Type,
00304 <font class="keyword">class </font>Param4Type,
00305 <font class="keyword">class </font>Param5Type,
00306 <font class="keyword">class </font>Param6Type&gt;
00307 Type*
<a name="l00308"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a17">00308</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a17">XalanConstruct</a>(
00309 MemoryManager&amp; theMemoryManager,
00310 Type*&amp; theInstance,
00311 Param1Type&amp; theParam1,
00312 Param2Type&amp; theParam2,
00313 <font class="keyword">const</font> Param3Type&amp; theParam3,
00314 <font class="keyword">const</font> Param4Type&amp; theParam4,
00315 <font class="keyword">const</font> Param5Type&amp; theParam5,
00316 <font class="keyword">const</font> Param6Type&amp; theParam6)<font class="keyword"></font>
00317 <font class="keyword"></font>{
00318 XalanAllocationGuard theGuard(
00319 theMemoryManager,
00320 <font class="keyword">sizeof</font>(Type));
00321
00322 theInstance =
00323 <font class="keyword">new</font> (theGuard.get()) Type(theParam1, theParam2, theParam3, theParam4, theParam5, theParam6);
00324
00325 theGuard.release();
00326
00327 <font class="keywordflow">return</font> theInstance;
00328 }
00329
00330
00331
00332 template&lt;class Type&gt;
00333 Type*
<a name="l00334"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a18">00334</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a19">XalanCopyConstruct</a>(
00335 MemoryManager&amp; theMemoryManager,
00336 <font class="keyword">const</font> Type&amp; theSource)<font class="keyword"></font>
00337 <font class="keyword"></font>{
00338 XalanAllocationGuard theGuard(
00339 theMemoryManager,
00340 <font class="keyword">sizeof</font>(Type));
00341
00342 Type* <font class="keyword">const</font> theInstance =
00343 <font class="keyword">new</font> (theGuard.get()) Type(theSource);
00344
00345 theGuard.release();
00346
00347 <font class="keywordflow">return</font> theInstance;
00348 }
00349
00350
00351
00352 <font class="keyword">template</font>&lt;
00353 <font class="keyword">class </font>Type,
00354 <font class="keyword">class </font>Param1Type&gt;
00355 Type*
<a name="l00356"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a19">00356</a> <a class="code" href="XalanMemoryManagement_8hpp.html#a19">XalanCopyConstruct</a>(
00357 MemoryManager&amp; theMemoryManager,
00358 <font class="keyword">const</font> Type&amp; theSource,
00359 Param1Type&amp; theParam1)<font class="keyword"></font>
00360 <font class="keyword"></font>{
00361 XalanAllocationGuard theGuard(
00362 theMemoryManager,
00363 <font class="keyword">sizeof</font>(Type));
00364
00365 Type* <font class="keyword">const</font> theInstance =
00366 <font class="keyword">new</font> (theGuard.get()) Type(theSource, theParam1);
00367
00368 theGuard.release();
00369
00370 <font class="keywordflow">return</font> theInstance;
00371 }
00372
00373
00374
<a name="l00375"></a><a class="code" href="classXalanMemMgrs.html">00375</a> <font class="keyword">class </font>XALAN_PLATFORM_EXPORT <a class="code" href="classXalanMemMgrs.html">XalanMemMgrs</a>
00376 {
00377 <font class="keyword">public</font>:
00378
00379 <font class="keyword">static</font> MemoryManager&amp;
00380 <a class="code" href="classXalanMemMgrs.html#d0">getDummyMemMgr</a>();
00381
00382 <font class="keyword">static</font> MemoryManager&amp;
00383 <a class="code" href="classXalanMemMgrs.html#d1">getDefaultXercesMemMgr</a>();
00384
00385 <font class="keyword">static</font> MemoryManager&amp;
<a name="l00386"></a><a class="code" href="classXalanMemMgrs.html#d2">00386</a> <a class="code" href="classXalanMemMgrs.html#d2">getDefault</a>()<font class="keyword"></font>
00387 <font class="keyword"> </font>{
00388 <font class="keywordflow">return</font> <a class="code" href="classXalanMemMgrs.html#d1">getDefaultXercesMemMgr</a>();
00389 }
00390 };
00391
00392
00393
00394
00395 <font class="preprocessor">#if defined (XALAN_DEVELOPMENT)</font>
00396 <font class="preprocessor"></font><font class="preprocessor">#define XALAN_DEFAULT_CONSTRUCTOR_MEMORY_MGR</font>
00397 <font class="preprocessor"></font><font class="preprocessor">#define XALAN_DEFAULT_CONSTRACTOR_MEMORY_MGR</font>
00398 <font class="preprocessor"></font><font class="preprocessor">#define XALAN_DEFAULT_MEMMGR = XalanMemMgrs::getDummyMemMgr()</font>
00399 <font class="preprocessor"></font><font class="preprocessor">#else</font>
<a name="l00400"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a1">00400</a> <font class="preprocessor"></font><font class="preprocessor">#define XALAN_DEFAULT_CONSTRUCTOR_MEMORY_MGR = XalanMemMgrs::getDefaultXercesMemMgr()</font>
<a name="l00401"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a2">00401</a> <font class="preprocessor"></font><font class="preprocessor">#define XALAN_DEFAULT_CONSTRACTOR_MEMORY_MGR XALAN_DEFAULT_CONSTRUCTOR_MEMORY_MGR</font>
<a name="l00402"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a3">00402</a> <font class="preprocessor"></font><font class="preprocessor">#define XALAN_DEFAULT_MEMMGR = XalanMemMgrs::getDefaultXercesMemMgr()</font>
00403 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00404 <font class="preprocessor"></font>
00405
00406
00407 template &lt;class C&gt;
<a name="l00408"></a><a class="code" href="structConstructValueWithNoMemoryManager.html">00408</a> <font class="keyword">struct </font><a class="code" href="structConstructValueWithNoMemoryManager.html">ConstructValueWithNoMemoryManager</a>
00409 {
<a name="l00410"></a><a class="code" href="structConstructValueWithNoMemoryManager.html#a0">00410</a> <a class="code" href="structConstructValueWithNoMemoryManager.html#a0">ConstructValueWithNoMemoryManager</a>(MemoryManager&amp; <font class="comment">/*mgr*/</font>) :
00411 value()
00412 {
00413 }
00414
<a name="l00415"></a><a class="code" href="structConstructValueWithNoMemoryManager.html#m0">00415</a> C value;
00416 };
00417
00418 template &lt;class C&gt;
<a name="l00419"></a><a class="code" href="structConstructValueWithMemoryManager.html">00419</a> <font class="keyword">struct </font><a class="code" href="structConstructValueWithMemoryManager.html">ConstructValueWithMemoryManager</a>
00420 {
<a name="l00421"></a><a class="code" href="structConstructValueWithMemoryManager.html#a0">00421</a> <a class="code" href="structConstructValueWithMemoryManager.html#a0">ConstructValueWithMemoryManager</a>(MemoryManager&amp; mgr) :
00422 value(mgr)
00423 {
00424 }
00425
<a name="l00426"></a><a class="code" href="structConstructValueWithMemoryManager.html#m0">00426</a> C value;
00427 };
00428
00429 template &lt;class C&gt;
<a name="l00430"></a><a class="code" href="structConstructWithNoMemoryManager.html">00430</a> <font class="keyword">struct </font><a class="code" href="structConstructWithNoMemoryManager.html">ConstructWithNoMemoryManager</a>
00431 {
<a name="l00432"></a><a class="code" href="structConstructWithNoMemoryManager.html#s0">00432</a> <font class="keyword">typedef</font> <a class="code" href="structConstructValueWithNoMemoryManager.html">ConstructValueWithNoMemoryManager&lt;C&gt;</a> <a class="code" href="structConstructValueWithNoMemoryManager.html">ConstructableType</a>;
00433
<a name="l00434"></a><a class="code" href="structConstructWithNoMemoryManager.html#d0">00434</a> <font class="keyword">static</font> C* <a class="code" href="structConstructWithNoMemoryManager.html#d0">construct</a>(C* address, MemoryManager&amp; <font class="comment">/* mgr */</font>)<font class="keyword"></font>
00435 <font class="keyword"> </font>{
00436 <font class="keywordflow">return</font> (C*) <font class="keyword">new</font> (address) C;
00437 }
00438
<a name="l00439"></a><a class="code" href="structConstructWithNoMemoryManager.html#d1">00439</a> <font class="keyword">static</font> C* <a class="code" href="structConstructWithNoMemoryManager.html#d0">construct</a>(C* address, <font class="keyword">const</font> C&amp; theRhs, MemoryManager&amp; <font class="comment">/* mgr */</font>)<font class="keyword"></font>
00440 <font class="keyword"> </font>{
00441 <font class="keywordflow">return</font> (C*) <font class="keyword">new</font> (address) C(theRhs);
00442 }
00443 };
00444
00445 template &lt;class C&gt;
<a name="l00446"></a><a class="code" href="structConstructWithMemoryManager.html">00446</a> <font class="keyword">struct </font><a class="code" href="structConstructWithMemoryManager.html">ConstructWithMemoryManager</a>
00447 {
<a name="l00448"></a><a class="code" href="structConstructWithMemoryManager.html#s0">00448</a> <font class="keyword">typedef</font> <a class="code" href="structConstructValueWithMemoryManager.html">ConstructValueWithMemoryManager&lt;C&gt;</a> <a class="code" href="structConstructValueWithNoMemoryManager.html">ConstructableType</a>;
00449
<a name="l00450"></a><a class="code" href="structConstructWithMemoryManager.html#d0">00450</a> <font class="keyword">static</font> C* <a class="code" href="structConstructWithMemoryManager.html#d0">construct</a>(C* address, MemoryManager&amp; mgr)<font class="keyword"></font>
00451 <font class="keyword"> </font>{
00452 <font class="keywordflow">return</font> (C*) <font class="keyword">new</font> (address) C(mgr);
00453 }
00454
<a name="l00455"></a><a class="code" href="structConstructWithMemoryManager.html#d1">00455</a> <font class="keyword">static</font> C* <a class="code" href="structConstructWithMemoryManager.html#d0">construct</a>(C* address, <font class="keyword">const</font> C&amp; theRhs, MemoryManager&amp; mgr)<font class="keyword"></font>
00456 <font class="keyword"> </font>{
00457 <font class="keywordflow">return</font> (C*) <font class="keyword">new</font> (address) C(theRhs, mgr);
00458 }
00459 };
00460
00461 template &lt;class C&gt;
<a name="l00462"></a><a class="code" href="structMemoryManagedConstructionTraits.html">00462</a> <font class="keyword">struct </font><a class="code" href="structMemoryManagedConstructionTraits.html">MemoryManagedConstructionTraits</a>
00463 {
<a name="l00464"></a><a class="code" href="structMemoryManagedConstructionTraits.html#s0">00464</a> <font class="keyword">typedef</font> <a class="code" href="structConstructWithNoMemoryManager.html">ConstructWithNoMemoryManager&lt;C&gt;</a> <a class="code" href="structMemoryManagedConstructionTraits.html">Constructor</a>;
00465
00466 };
00467
<a name="l00468"></a><a class="code" href="XalanMemoryManagement_8hpp.html#a4">00468</a> <font class="preprocessor">#define XALAN_USES_MEMORY_MANAGER(Type) \</font>
00469 <font class="preprocessor">template&lt;&gt; \</font>
00470 <font class="preprocessor">struct MemoryManagedConstructionTraits&lt;Type&gt; \</font>
00471 <font class="preprocessor"> { \</font>
00472 <font class="preprocessor"> typedef ConstructWithMemoryManager&lt;Type&gt; Constructor; \</font>
00473 <font class="preprocessor"> };</font>
00474 <font class="preprocessor"></font>
00475 template &lt;class C&gt;
<a name="l00476"></a><a class="code" href="structConstructWithMemoryManagerTraits.html">00476</a> <font class="keyword">struct </font><a class="code" href="structConstructWithMemoryManagerTraits.html">ConstructWithMemoryManagerTraits</a>
00477 {
<a name="l00478"></a><a class="code" href="structConstructWithMemoryManagerTraits.html#s0">00478</a> <font class="keyword">typedef</font> <a class="code" href="structConstructWithMemoryManager.html">ConstructWithMemoryManager&lt;C&gt;</a> <a class="code" href="structMemoryManagedConstructionTraits.html">Constructor</a>;
00479 };
00480
00481 template &lt;class C&gt;
<a name="l00482"></a><a class="code" href="structConstructWithNoMemoryManagerTraits.html">00482</a> <font class="keyword">struct </font><a class="code" href="structConstructWithNoMemoryManagerTraits.html">ConstructWithNoMemoryManagerTraits</a>
00483 {
<a name="l00484"></a><a class="code" href="structConstructWithNoMemoryManagerTraits.html#s0">00484</a> <font class="keyword">typedef</font> <a class="code" href="structConstructWithNoMemoryManager.html">ConstructWithNoMemoryManager&lt;C&gt;</a> <a class="code" href="structMemoryManagedConstructionTraits.html">Constructor</a>;
00485 };
00486
00487
00488
00489
00490 XALAN_CPP_NAMESPACE_END
00491
00492
00493
00494 <font class="preprocessor">#endif // XALANMEMORYMANAGEMENT_HEADER_GUARD_1357924680</font>
00495 <font class="preprocessor"></font>
00496
</pre></div><p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p>
<p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and
<A href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</A> are used to generate this API documentation from the Xalan-C header files.</I></FONT></p>
<TABLE border="0" cellpadding="0" cellspacing="0" width="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="../resources/dot.gif" width="1" alt="dot"></TD></TR></TABLE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%">
<TR>
<TD WIDTH="80%" VALIGN="TOP">
<P ALIGN="CENTER"><B>Xalan-C++ XSLT Processor Version 1.10</B><BR>
Copyright &copy; 1999-2004 The Apache Software Foundation. All Rights Reserved.</i></p>
</TD>
</TR>
<TR>
<TD WIDTH="100%">
<P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0" ALT="Apache Logo">
</TD>
</TR>
</TABLE>