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::FrameHeapTemplate</title>
51  </head>
52  <body>
53<h1><CODE>nn::fnd::FrameHeapTemplate</CODE> Class</h1>
54<h2>Syntax</h2>
55    <div class="section">
56      <pre class="definition">template &lt;class LockPolicy&gt;
57class FrameHeapTemplate : public <a href="../../../nn/fnd/FrameHeapBase/Overview.html">nn::fnd::FrameHeapBase</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 frame 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/FrameHeapTemplate/ScopedFrame/Overview.html">nn::fnd::FrameHeapTemplate::ScopedFrame</a>
83            </th>
84<td>Class for storing the state of the frame heap individually for each scope.</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/FrameHeapTemplate/FrameHeapTemplate.html">FrameHeapTemplate</a>
95            </th>
96<td>Constructor. No initialization is performed.</td>
97          </tr>
98          <tr>
99            <td width="100">  </td>
100            <th>
101<a href="../../../nn/fnd/FrameHeapTemplate/Initialize.html">Initialize</a>
102            </th>
103<td>Initializes the frame heap.</td>
104          </tr>
105          <tr>
106            <td width="100">  </td>
107            <th>
108<a href="../../../nn/fnd/FrameHeapTemplate/Finalize.html">Finalize</a>
109            </th>
110<td>Destroys the heap.</td>
111          </tr>
112          <tr>
113<td width="100"> <span class="virtual_style" title="virtual">V</span>
114            </td>
115            <th>
116<a href="../../../nn/fnd/FrameHeapTemplate/~FrameHeapTemplate.html">~FrameHeapTemplate</a>
117            </th>
118<td>Destructor. Calls <CODE>Finalize</CODE>.</td>
119          </tr>
120          <tr>
121            <td width="100">  </td>
122            <th>
123<a href="../../../nn/fnd/FrameHeapTemplate/Allocate.html">Allocate</a>
124            </th>
125<td>Allocates memory from the frame heap.</td>
126          </tr>
127          <tr>
128            <td width="100">  </td>
129            <th>
130<a href="../../../nn/fnd/FrameHeapTemplate/ResizeBlock.html">ResizeBlock</a>
131            </th>
132<td>Resizes the memory block that was most recently allocated from the frame heap.</td>
133          </tr>
134          <tr>
135            <td width="100">  </td>
136            <th>
137<a href="../../../nn/fnd/FrameHeapTemplate/Free.html">Free</a>
138            </th>
139<td>Frees all memory blocks that have been allocated from the frame 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/FrameHeapTemplate/FreeV.html">FreeV</a>
146            </th>
147<td>This function is defined only for consistency with the other heap types and cannot be called.</td>
148          </tr>
149          <tr>
150            <td width="100">  </td>
151            <th>
152<a href="../../../nn/fnd/FrameHeapTemplate/SaveState.html">SaveState</a>
153            </th>
154<td>Saves the state of the frame heap.</td>
155          </tr>
156          <tr>
157            <td width="100">  </td>
158            <th>
159<a href="../../../nn/fnd/FrameHeapTemplate/RestoreState.html">RestoreState</a>
160            </th>
161<td>Restores the state of the frame heap.</td>
162          </tr>
163          <tr>
164            <td width="100">  </td>
165            <th>
166<a href="../../../nn/fnd/FrameHeapTemplate/Adjust.html">Adjust</a>
167            </th>
168<td>Resizes the frame heap to the minimum size required to encompass the memory blocks that have been allocated.</td>
169          </tr>
170          <tr>
171            <td width="100">  </td>
172            <th>
173<a href="../../../nn/fnd/FrameHeapTemplate/GetAllocatableSize.html">GetAllocatableSize</a>
174            </th>
175<td>Gets the size of the memory block that can be allocated from the frame heap.</td>
176          </tr>
177          <tr>
178<td width="100"> <span class="virtual_style" title="virtual">V</span>
179            </td>
180            <th>
181<a href="../../../nn/fnd/FrameHeapTemplate/GetStartAddress.html">GetStartAddress</a>
182            </th>
183<td>Gets the starting address of the frame heap's memory region.</td>
184          </tr>
185          <tr>
186<td width="100"> <span class="virtual_style" title="virtual">V</span>
187            </td>
188            <th>
189<a href="../../../nn/fnd/FrameHeapTemplate/GetTotalSize.html">GetTotalSize</a>
190            </th>
191<td>Gets the memory size allocated to the frame heap.</td>
192          </tr>
193          <tr>
194<td width="100"> <span class="virtual_style" title="virtual">V</span>
195            </td>
196            <th>
197<a href="../../../nn/fnd/FrameHeapTemplate/HasAddress.html">HasAddress</a>
198            </th>
199<td>Determines whether the specified address is located within a heap.</td>
200          </tr>
201          <tr>
202<td width="100"> <span class="virtual_style" title="virtual">V</span>
203            </td>
204            <th>
205<a href="../../../nn/fnd/FrameHeapTemplate/Dump.html">Dump</a>
206            </th>
207<td>Displays internal heap information. (Used for debugging.)</td>
208          </tr>
209          <tr>
210            <td width="100">
211<span class="static_style" title="static">S</span> </td>
212            <th>
213<a href="../../../nn/fnd/FrameHeapTemplate/Create.html">Create</a>
214            </th>
215<td>Creates a frame heap within a parent heap.</td>
216          </tr> </table>
217      </div>
218    </a>
219<h2>Class Hierarchy</h2>
220    <div class="section">
221<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/FrameHeapBase/Overview.html">nn::fnd::FrameHeapBase</a><br />        <b>nn::fnd::FrameHeapTemplate</b>
222      </p>
223    </div>
224<h2>Revision History</h2>
225    <div class="section">
226      <dl class="history">
227        <dt>2010/01/07</dt>
228<dd>Initial version.<br />
229        </dd>
230      </dl>
231    </div>
232  <hr><p>CONFIDENTIAL</p></body>
233</html>