ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/vendor/libpeak-0.1.2/doc/html/group__alloc.html
Revision: 3251
Committed: Wed Apr 2 16:58:30 2014 UTC (11 years, 4 months ago) by michael
Content type: text/html
File size: 13645 byte(s)
Log Message:
- Imported libpeak-0.1.2

File Contents

# User Rev Content
1 michael 3251 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2     <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3     <title>PEAK Library: Allocation</title>
4     <link href="doxygen.css" rel="stylesheet" type="text/css">
5     </head><body>
6     <!-- Generated by Doxygen 1.3.5 -->
7     <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a></div>
8     <h1>Allocation</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
9     <dl compact><dt><b></b></dt><dd>Peak's allocation mechanism uses the standard malloc/free pair but can be configured as wish with <a class="el" href="group__alloc.html#ga3">peak_alloc_configure()</a> providing your own allocation and deallocation primitives.</dd></dl>
10     <dl compact><dt><b></b></dt><dd>Although written in C, peak is object oriented and features a lightweight support for reference counting in all peak objects. This module offers access to the <a class="el" href="group__alloc.html#ga6">peak_retain()</a> an <a class="el" href="group__alloc.html#ga7">peak_release()</a> method.<br>
11     Strings, however, are normal C strings and not wrapped by the peak library. For convenience, a <a class="el" href="group__alloc.html#ga6">peak_strdup()</a> method is provided as well. </dd></dl>
12    
13     <p>
14     <table border=0 cellpadding=0 cellspacing=0>
15     <tr><td></td></tr>
16     <tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
17     <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga0" doxytag="alloc::peak_alloc_malloc_func" ></a>
18     typedef void *(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga0">peak_alloc_malloc_func</a> )(size_t size)</td></tr>
19    
20     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Malloc-like function pointer type. <br><br></td></tr>
21     <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="ga1" doxytag="alloc::peak_alloc_free_func" ></a>
22     typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga1">peak_alloc_free_func</a> )(void *p)</td></tr>
23    
24     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free-like function pointer type. <br><br></td></tr>
25     <tr><td colspan=2><br><h2>Functions</h2></td></tr>
26     <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga2">peak_alloc_configure</a> (<a class="el" href="group__alloc.html#ga0">peak_alloc_malloc_func</a> malloc_fun, <a class="el" href="group__alloc.html#ga1">peak_alloc_free_func</a> free_fun)</td></tr>
27    
28     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configure peak's allocation for your program. <a href="#ga2"></a><br><br></td></tr>
29     <tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga3">peak_allocate</a> (size_t size)</td></tr>
30    
31     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate memory. <a href="#ga3"></a><br><br></td></tr>
32     <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga4">peak_deallocate</a> (void *ptr)</td></tr>
33    
34     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free memory. <a href="#ga4"></a><br><br></td></tr>
35     <tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga5">peak_strdup</a> (const char *str)</td></tr>
36    
37     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy a string. <a href="#ga5"></a><br><br></td></tr>
38     <tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga6">peak_retain</a> (void *obj)</td></tr>
39    
40     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retain a peak object. <a href="#ga6"></a><br><br></td></tr>
41     <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga7">peak_release</a> (void *obj)</td></tr>
42    
43     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release a peak object. <a href="#ga7"></a><br><br></td></tr>
44     <tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="group__alloc.html#ga8">peak_get_retcnt</a> (void *obj)</td></tr>
45    
46     <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the retain count of a peak object. <a href="#ga8"></a><br><br></td></tr>
47     </table>
48     <hr><h2>Function Documentation</h2>
49     <a class="anchor" name="ga2" doxytag="alloc.h::peak_alloc_configure" ></a><p>
50     <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
51     <tr>
52     <td class="mdRow">
53     <table cellpadding="0" cellspacing="0" border="0">
54     <tr>
55     <td class="md" nowrap valign="top"> void peak_alloc_configure </td>
56     <td class="md" valign="top">(&nbsp;</td>
57     <td class="md" nowrap valign="top"><a class="el" href="group__alloc.html#ga0">peak_alloc_malloc_func</a>&nbsp;</td>
58     <td class="mdname" nowrap> <em>malloc_fun</em>, </td>
59     </tr>
60     <tr>
61     <td></td>
62     <td></td>
63     <td class="md" nowrap><a class="el" href="group__alloc.html#ga1">peak_alloc_free_func</a>&nbsp;</td>
64     <td class="mdname" nowrap> <em>free_fun</em></td>
65     </tr>
66     <tr>
67     <td></td>
68     <td class="md">)&nbsp;</td>
69     <td class="md" colspan="2"></td>
70     </tr>
71    
72     </table>
73     </td>
74     </tr>
75     </table>
76     <table cellspacing=5 cellpadding=0 border=0>
77     <tr>
78     <td>
79     &nbsp;
80     </td>
81     <td>
82    
83     <p>
84     Configure peak's allocation for your program.
85     <p>
86     Pointed functions must properly align memory and be thread-safe like malloc() and free()...<p>
87     <dl compact><dt><b>Parameters:</b></dt><dd>
88     <table border="0" cellspacing="2" cellpadding="0">
89     <tr><td valign=top><em>malloc_fun</em>&nbsp;</td><td>A pointer to your custom malloc-like function. </td></tr>
90     <tr><td valign=top><em>free_fun</em>&nbsp;</td><td>A pointer to your custom free-like function. </td></tr>
91     </table>
92     </dl>
93     </td>
94     </tr>
95     </table>
96     <a class="anchor" name="ga3" doxytag="alloc.h::peak_allocate" ></a><p>
97     <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
98     <tr>
99     <td class="mdRow">
100     <table cellpadding="0" cellspacing="0" border="0">
101     <tr>
102     <td class="md" nowrap valign="top"> void* peak_allocate </td>
103     <td class="md" valign="top">(&nbsp;</td>
104     <td class="md" nowrap valign="top">size_t&nbsp;</td>
105     <td class="mdname1" valign="top" nowrap> <em>size</em> </td>
106     <td class="md" valign="top">&nbsp;)&nbsp;</td>
107     <td class="md" nowrap></td>
108     </tr>
109    
110     </table>
111     </td>
112     </tr>
113     </table>
114     <table cellspacing=5 cellpadding=0 border=0>
115     <tr>
116     <td>
117     &nbsp;
118     </td>
119     <td>
120    
121     <p>
122     Allocate memory.
123     <p>
124     <dl compact><dt><b>Parameters:</b></dt><dd>
125     <table border="0" cellspacing="2" cellpadding="0">
126     <tr><td valign=top><em>size</em>&nbsp;</td><td>Number of bytes of memory to allocate.</td></tr>
127     </table>
128     </dl>
129     <dl compact><dt><b>Returns:</b></dt><dd>A pointer to the fresh allocated memory. </dd></dl>
130     </td>
131     </tr>
132     </table>
133     <a class="anchor" name="ga4" doxytag="alloc.h::peak_deallocate" ></a><p>
134     <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
135     <tr>
136     <td class="mdRow">
137     <table cellpadding="0" cellspacing="0" border="0">
138     <tr>
139     <td class="md" nowrap valign="top"> void peak_deallocate </td>
140     <td class="md" valign="top">(&nbsp;</td>
141     <td class="md" nowrap valign="top">void *&nbsp;</td>
142     <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td>
143     <td class="md" valign="top">&nbsp;)&nbsp;</td>
144     <td class="md" nowrap></td>
145     </tr>
146    
147     </table>
148     </td>
149     </tr>
150     </table>
151     <table cellspacing=5 cellpadding=0 border=0>
152     <tr>
153     <td>
154     &nbsp;
155     </td>
156     <td>
157    
158     <p>
159     Free memory.
160     <p>
161     <dl compact><dt><b>Parameters:</b></dt><dd>
162     <table border="0" cellspacing="2" cellpadding="0">
163     <tr><td valign=top><em>ptr</em>&nbsp;</td><td>Pointer to the memory space to deallocate. </td></tr>
164     </table>
165     </dl>
166     </td>
167     </tr>
168     </table>
169     <a class="anchor" name="ga8" doxytag="alloc.h::peak_get_retcnt" ></a><p>
170     <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
171     <tr>
172     <td class="mdRow">
173     <table cellpadding="0" cellspacing="0" border="0">
174     <tr>
175     <td class="md" nowrap valign="top"> int peak_get_retcnt </td>
176     <td class="md" valign="top">(&nbsp;</td>
177     <td class="md" nowrap valign="top">void *&nbsp;</td>
178     <td class="mdname1" valign="top" nowrap> <em>obj</em> </td>
179     <td class="md" valign="top">&nbsp;)&nbsp;</td>
180     <td class="md" nowrap></td>
181     </tr>
182    
183     </table>
184     </td>
185     </tr>
186     </table>
187     <table cellspacing=5 cellpadding=0 border=0>
188     <tr>
189     <td>
190     &nbsp;
191     </td>
192     <td>
193    
194     <p>
195     Get the retain count of a peak object.
196     <p>
197     <dl compact><dt><b>Parameters:</b></dt><dd>
198     <table border="0" cellspacing="2" cellpadding="0">
199     <tr><td valign=top><em>obj</em>&nbsp;</td><td>Any peak object.</td></tr>
200     </table>
201     </dl>
202     <dl compact><dt><b>Returns:</b></dt><dd>Retain count or -1 for constant objects. </dd></dl>
203     </td>
204     </tr>
205     </table>
206     <a class="anchor" name="ga7" doxytag="alloc.h::peak_release" ></a><p>
207     <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
208     <tr>
209     <td class="mdRow">
210     <table cellpadding="0" cellspacing="0" border="0">
211     <tr>
212     <td class="md" nowrap valign="top"> void peak_release </td>
213     <td class="md" valign="top">(&nbsp;</td>
214     <td class="md" nowrap valign="top">void *&nbsp;</td>
215     <td class="mdname1" valign="top" nowrap> <em>obj</em> </td>
216     <td class="md" valign="top">&nbsp;)&nbsp;</td>
217     <td class="md" nowrap></td>
218     </tr>
219    
220     </table>
221     </td>
222     </tr>
223     </table>
224     <table cellspacing=5 cellpadding=0 border=0>
225     <tr>
226     <td>
227     &nbsp;
228     </td>
229     <td>
230    
231     <p>
232     Release a peak object.
233     <p>
234     Decrease the reference count of the object <em>obj</em>. If the refcount is 0, the object is deallocated.<p>
235     <dl compact><dt><b>Parameters:</b></dt><dd>
236     <table border="0" cellspacing="2" cellpadding="0">
237     <tr><td valign=top><em>obj</em>&nbsp;</td><td>Any peak object. </td></tr>
238     </table>
239     </dl>
240     </td>
241     </tr>
242     </table>
243     <a class="anchor" name="ga6" doxytag="alloc.h::peak_retain" ></a><p>
244     <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
245     <tr>
246     <td class="mdRow">
247     <table cellpadding="0" cellspacing="0" border="0">
248     <tr>
249     <td class="md" nowrap valign="top"> void* peak_retain </td>
250     <td class="md" valign="top">(&nbsp;</td>
251     <td class="md" nowrap valign="top">void *&nbsp;</td>
252     <td class="mdname1" valign="top" nowrap> <em>obj</em> </td>
253     <td class="md" valign="top">&nbsp;)&nbsp;</td>
254     <td class="md" nowrap></td>
255     </tr>
256    
257     </table>
258     </td>
259     </tr>
260     </table>
261     <table cellspacing=5 cellpadding=0 border=0>
262     <tr>
263     <td>
264     &nbsp;
265     </td>
266     <td>
267    
268     <p>
269     Retain a peak object.
270     <p>
271     Increase the reference count of the object <em>obj</em>.<p>
272     <dl compact><dt><b>Parameters:</b></dt><dd>
273     <table border="0" cellspacing="2" cellpadding="0">
274     <tr><td valign=top><em>obj</em>&nbsp;</td><td>Any peak object.</td></tr>
275     </table>
276     </dl>
277     <dl compact><dt><b>Returns:</b></dt><dd>For convenience, a pointer to <em>obj</em>. </dd></dl>
278     </td>
279     </tr>
280     </table>
281     <a class="anchor" name="ga5" doxytag="alloc.h::peak_strdup" ></a><p>
282     <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
283     <tr>
284     <td class="mdRow">
285     <table cellpadding="0" cellspacing="0" border="0">
286     <tr>
287     <td class="md" nowrap valign="top"> char* peak_strdup </td>
288     <td class="md" valign="top">(&nbsp;</td>
289     <td class="md" nowrap valign="top">const char *&nbsp;</td>
290     <td class="mdname1" valign="top" nowrap> <em>str</em> </td>
291     <td class="md" valign="top">&nbsp;)&nbsp;</td>
292     <td class="md" nowrap></td>
293     </tr>
294    
295     </table>
296     </td>
297     </tr>
298     </table>
299     <table cellspacing=5 cellpadding=0 border=0>
300     <tr>
301     <td>
302     &nbsp;
303     </td>
304     <td>
305    
306     <p>
307     Copy a string.
308     <p>
309     <dl compact><dt><b>Parameters:</b></dt><dd>
310     <table border="0" cellspacing="2" cellpadding="0">
311     <tr><td valign=top><em>str</em>&nbsp;</td><td>The string to copy/duplicate.</td></tr>
312     </table>
313     </dl>
314     <dl compact><dt><b>Returns:</b></dt><dd>A pointer to a new allocated copy of the string. It should be passed to <a class="el" href="group__alloc.html#ga5">peak_deallocate()</a> if you want to free it. </dd></dl>
315     </td>
316     </tr>
317     </table>
318     <hr size="1"><address style="align: right;"><small>Generated on Sat Jan 17 21:41:53 2004 for the PEAK Library by
319     <a href="http://www.doxygen.org/index.html">
320     <img src="doxygen.png" alt="doxygen" align="middle" border="0" >
321     </a></small>&nbsp; &nbsp; <a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=98146&amp;type=1" width="88" height="31" align="middle" border="0" alt="SourceForge.net Logo" /></a></address>
322     </body>
323     </html>
324