1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" />
7    <style type="text/css"><!--
8      span.static_style
9      {
10        font-size			: 8pt;
11        color				: white;
12        font-weight			: bold;
13        background			: #44f;
14        border-left			: solid 1px #aaf;
15        border-top			: solid 1px #aaf;
16        border-right		: solid 1px #00c;
17        border-bottom		: solid 1px #00c;
18        padding-left		: 2px;
19        padding-right		: 2px;
20      }
21
22      span.virtual_style
23      {
24        font-size			 : 8pt;
25        color				 : white;
26        font-weight			: bold;
27        background			: #0a0;
28        border-left			: solid 1px #0f0;
29        border-top			: solid 1px #0f0;
30        border-right		: solid 1px #060;
31        border-bottom		: solid 1px #060;
32        padding-left		: 2px;
33        padding-right		: 2px;
34      }
35
36      span.protected_style
37      {
38        font-size			 : 8pt;
39        color				 : white;
40        font-weight			: bold;
41        background			: #444;
42        border-left			: solid 1px #ccc;
43        border-top			: solid 1px #ccc;
44        border-right		: solid 1px #222;
45        border-bottom		: solid 1px #222;
46        padding-left		: 2px;
47        padding-right		: 2px;
48      }
49        --></style>
50<title>nn::fnd::ExpHeapTemplate</title>
51  </head>
52  <body>
53<h1><CODE>nn::fnd::ExpHeapTemplate</CODE> Class</h1>
54<h2>Syntax</h2>
55    <div class="section">
56      <pre class="definition">template &lt;class LockPolicy&gt;
57class ExpHeapTemplate : public <a href="../../../nn/fnd/ExpHeapBase/Overview.html">nn::fnd::ExpHeapBase</a></pre>
58    </div>
59<h2>Template Arguments</h2>
60    <div class="section">
61      <table class="arguments">
62        <thead>
63          <tr>
64<th>Name</th>
65<td>Description</td>
66          </tr>
67        </thead>
68        <tr>
69<th>LockPolicy</th>
70<td>Specifies the lock policy to use during operations on the heap.</td>
71        </tr> </table>
72    </div>
73<h2>Description</h2>
74    <div class="section">
75<p>Class template for the expanded heap.</p><p>In classes that instantiate this class template, mutual exclusion is done using the lock policy specified by this function. For the lock policy, you can either specify one of the classes declared within the <CODE><a href="../../../nn/os/LockPolicy/Overview.html">nn::os::LockPolicy</a></CODE> class or specify a class that instantiates the class template. Neither operation nor compatibility is guaranteed if you specify any other class for the <SPAN class="argument">LockPolicy</SPAN> argument.</p><p>Locking is only performed on operations within the heap. If you want to perform operations on the heap hierarchy, you must take additional appropriate measures to ensure exclusive access.</p><!-- write here --></div>
76    <a name="class" id="class">
77<h2>Classes</h2>
78      <div class="section">
79        <table class="members">
80          <tr>
81            <th>
82<a href="../../../nn/fnd/ExpHeapTemplate/Allocator/Overview.html">nn::fnd::ExpHeapTemplate::Allocator</a>
83            </th>
84<td>Allocator class for the expanded heap.</td>
85          </tr> </table>
86      </div>
87    </a> <a name="function" id="function">
88<h2>Member Functions</h2>
89      <div class="section">
90        <table class="members">
91          <tr>
92            <td width="100">  </td>
93            <th>
94<a href="../../../nn/fnd/ExpHeapTemplate/ExpHeapTemplate.html"><CODE>ExpHeapTemplate</CODE></a>
95            </th>
96<td>Constructor.</td>
97          </tr>
98          <tr>
99            <td width="100">  </td>
100            <th>
101<a href="../../../nn/fnd/ExpHeapTemplate/Initialize.html"><CODE>Initialize</CODE></a>
102            </th>
103<td>Initializes the heap.</td>
104          </tr>
105          <tr>
106            <td width="100">  </td>
107            <th>
108<a href="../../../nn/fnd/ExpHeapTemplate/Invalidate.html">Invalidate</a>
109            </th>
110<td>Invalidates the heap.</td>
111          </tr>
112          <tr>
113            <td width="100">  </td>
114            <th>
115<a href="../../../nn/fnd/ExpHeapTemplate/Finalize.html"><CODE>Finalize</CODE></a>
116            </th>
117<td>If the heap is valid, it destroys it.</td>
118          </tr>
119          <tr>
120<td width="100"> <span class="virtual_style" title="virtual">V</span>
121            </td>
122            <th>
123<a href="../../../nn/fnd/ExpHeapTemplate/~ExpHeapTemplate.html">~ExpHeapTemplate</a>
124            </th>
125<td>Destructor. Calls <CODE>Finalize</CODE>.</td>
126          </tr>
127          <tr>
128            <td width="100">  </td>
129            <th>
130<a href="../../../nn/fnd/ExpHeapTemplate/Allocate.html">Allocate</a>
131            </th>
132<td>Allocates memory from the expanded heap.</td>
133          </tr>
134          <tr>
135            <td width="100">  </td>
136            <th>
137<a href="../../../nn/fnd/ExpHeapTemplate/Free.html">Free</a>
138            </th>
139<td>Frees a memory block that was allocated from the expanded heap.</td>
140          </tr>
141          <tr>
142<td width="100"> <span class="virtual_style" title="virtual">V</span>
143            </td>
144            <th>
145<a href="../../../nn/fnd/ExpHeapTemplate/FreeV.html">FreeV</a>
146            </th>
147<td>Frees a memory block that was allocated from the expanded heap.</td>
148          </tr>
149          <tr>
150            <td width="100">  </td>
151            <th>
152<a href="../../../nn/fnd/ExpHeapTemplate/ResizeBlock.html">ResizeBlock</a>
153            </th>
154<td>Changes the size of a memory block that was allocated from the expanded heap.</td>
155          </tr>
156          <tr>
157            <td width="100">  </td>
158            <th>
159<a href="../../../nn/fnd/ExpHeapTemplate/VisitAllBlocks.html">VisitAllBlocks</a>
160            </th>
161<td>Calls a user-specified <CODE>visitor</CODE> function on all memory blocks that have been allocated from the expanded heap.</td>
162          </tr>
163          <tr>
164<td width="100"> <span class="virtual_style" title="virtual">V</span>
165            </td>
166            <th>
167<a href="../../../nn/fnd/ExpHeapTemplate/GetStartAddress.html">GetStartAddress</a>
168            </th>
169<td>Gets the starting address of the expanded heap's memory region.</td>
170          </tr>
171          <tr>
172<td width="100"> <span class="virtual_style" title="virtual">V</span>
173            </td>
174            <th>
175<a href="../../../nn/fnd/ExpHeapTemplate/GetTotalSize.html">GetTotalSize</a>
176            </th>
177<td>Gets the memory size assigned to the expanded heap.</td>
178          </tr>
179          <tr>
180            <td width="100">  </td>
181            <th>
182<a href="../../../nn/fnd/ExpHeapTemplate/GetTotalFreeSize.html">GetTotalFreeSize</a>
183            </th>
184<td>Gets the available memory size of the expanded heap.</td>
185          </tr>
186          <tr>
187            <td width="100">  </td>
188            <th>
189<a href="../../../nn/fnd/ExpHeapTemplate/GetAllocatableSize.html">GetAllocatableSize</a>
190            </th>
191<td>Gets the size of the memory block that can be allocated from the expanded heap.</td>
192          </tr>
193          <tr>
194            <td width="100">  </td>
195            <th>
196<a href="../../../nn/fnd/ExpHeapTemplate/Adjust.html">Adjust</a>
197            </th>
198<td>Use of this function is NOT recommended. This function frees unused areas at the tail of the expanded heap to reduce the amount of memory the expanded heap uses.</td>
199          </tr>
200          <tr>
201            <td width="100">  </td>
202            <th>
203<a href="../../../nn/fnd/ExpHeapTemplate/CheckHeap.html">CheckHeap</a>
204            </th>
205<td>Checks whether the expanded heap has been destroyed.</td>
206          </tr>
207          <tr>
208            <td width="100">  </td>
209            <th>
210<a href="../../../nn/fnd/ExpHeapTemplate/CheckBlock.html">CheckBlock</a>
211            </th>
212<td>Checks memory blocks that have been allocated from the expanded heap.</td>
213          </tr>
214          <tr>
215<td width="100"> <span class="virtual_style" title="virtual">V</span>
216            </td>
217            <th>
218<a href="../../../nn/fnd/ExpHeapTemplate/HasAddress.html">HasAddress</a>
219            </th>
220<td>Determines whether the specified address is located within a heap.</td>
221          </tr>
222          <tr>
223<td width="100"> <span class="virtual_style" title="virtual">V</span>
224            </td>
225            <th>
226<a href="../../../nn/fnd/ExpHeapTemplate/Dump.html">Dump</a>
227            </th>
228<td>Displays a heap's internal information. (Used for debugging.)</td>
229          </tr>
230          <tr>
231            <td width="100">
232<span class="static_style" title="static">S</span> </td>
233            <th>
234<a href="../../../nn/fnd/ExpHeapTemplate/Create.html">Create</a>
235            </th>
236<td>Creates an expanded heap within a parent heap.</td>
237          </tr> </table>
238      </div>
239    </a>
240<h2>Class Hierarchy</h2>
241    <div class="section">
242<p class="hierarchy"><span>ADLFireWall::NonCopyable</span><br />  <span>nn::fnd::IntrusiveLinkedList</span><br />    <a href="../../../nn/fnd/HeapBase/Overview.html">nn::fnd::HeapBase</a><br />      <a href="../../../nn/fnd/ExpHeapBase/Overview.html">nn::fnd::ExpHeapBase</a><br />        <b>nn::fnd::ExpHeapTemplate</b>
243      </p>
244    </div>
245<h2>Revision History</h2>
246    <div class="section">
247      <dl class="history">
248        <dt>2010/01/07</dt>
249<dd>Initial version.<br />
250        </dd>
251      </dl>
252    </div>
253  <hr><p>CONFIDENTIAL</p></body>
254</html>