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

File Contents

# Content
1 \hypertarget{group__alloc}{
2 \section{Allocation}
3 \label{group__alloc}\index{Allocation@{Allocation}}
4 }
5
6
7 \subsection{Detailed Description}
8 \begin{Desc}
9 \item[]Peak's allocation mechanism uses the standard malloc/free pair but can be configured as wish with \hyperlink{group__alloc_ga3}{peak\_\-alloc\_\-configure()} providing your own allocation and deallocation primitives.\end{Desc}
10 \begin{Desc}
11 \item[]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 \hyperlink{group__alloc_ga6}{peak\_\-retain()} an \hyperlink{group__alloc_ga7}{peak\_\-release()} method.\par
12 Strings, however, are normal C strings and not wrapped by the peak library. For convenience, a \hyperlink{group__alloc_ga6}{peak\_\-strdup()} method is provided as well. \end{Desc}
13
14
15 \subsection*{Typedefs}
16 \begin{CompactItemize}
17 \item
18 \hypertarget{group__alloc_ga0}{
19 typedef void $\ast$($\ast$ \hyperlink{group__alloc_ga0}{peak\_\-alloc\_\-malloc\_\-func} )(size\_\-t size)}
20 \label{group__alloc_ga0}
21
22 \begin{CompactList}\small\item\em Malloc-like function pointer type. \item\end{CompactList}\item
23 \hypertarget{group__alloc_ga1}{
24 typedef void($\ast$ \hyperlink{group__alloc_ga1}{peak\_\-alloc\_\-free\_\-func} )(void $\ast$p)}
25 \label{group__alloc_ga1}
26
27 \begin{CompactList}\small\item\em Free-like function pointer type. \item\end{CompactList}\end{CompactItemize}
28 \subsection*{Functions}
29 \begin{CompactItemize}
30 \item
31 void \hyperlink{group__alloc_ga2}{peak\_\-alloc\_\-configure} (\hyperlink{group__alloc_ga0}{peak\_\-alloc\_\-malloc\_\-func} malloc\_\-fun, \hyperlink{group__alloc_ga1}{peak\_\-alloc\_\-free\_\-func} free\_\-fun)
32 \begin{CompactList}\small\item\em Configure peak's allocation for your program. \item\end{CompactList}\item
33 void $\ast$ \hyperlink{group__alloc_ga3}{peak\_\-allocate} (size\_\-t size)
34 \begin{CompactList}\small\item\em Allocate memory. \item\end{CompactList}\item
35 void \hyperlink{group__alloc_ga4}{peak\_\-deallocate} (void $\ast$ptr)
36 \begin{CompactList}\small\item\em Free memory. \item\end{CompactList}\item
37 char $\ast$ \hyperlink{group__alloc_ga5}{peak\_\-strdup} (const char $\ast$str)
38 \begin{CompactList}\small\item\em Copy a string. \item\end{CompactList}\item
39 void $\ast$ \hyperlink{group__alloc_ga6}{peak\_\-retain} (void $\ast$obj)
40 \begin{CompactList}\small\item\em Retain a peak object. \item\end{CompactList}\item
41 void \hyperlink{group__alloc_ga7}{peak\_\-release} (void $\ast$obj)
42 \begin{CompactList}\small\item\em Release a peak object. \item\end{CompactList}\item
43 int \hyperlink{group__alloc_ga8}{peak\_\-get\_\-retcnt} (void $\ast$obj)
44 \begin{CompactList}\small\item\em Get the retain count of a peak object. \item\end{CompactList}\end{CompactItemize}
45
46
47 \subsection{Function Documentation}
48 \hypertarget{group__alloc_ga2}{
49 \index{alloc@{alloc}!peak_alloc_configure@{peak\_\-alloc\_\-configure}}
50 \index{peak_alloc_configure@{peak\_\-alloc\_\-configure}!alloc@{alloc}}
51 \subsubsection[peak\_\-alloc\_\-configure]{\setlength{\rightskip}{0pt plus 5cm}void peak\_\-alloc\_\-configure (\hyperlink{group__alloc_ga0}{peak\_\-alloc\_\-malloc\_\-func} {\em malloc\_\-fun}, \hyperlink{group__alloc_ga1}{peak\_\-alloc\_\-free\_\-func} {\em free\_\-fun})}}
52 \label{group__alloc_ga2}
53
54
55 Configure peak's allocation for your program.
56
57 Pointed functions must properly align memory and be thread-safe like malloc() and free()...
58
59 \begin{Desc}
60 \item[Parameters:]
61 \begin{description}
62 \item[{\em malloc\_\-fun}]A pointer to your custom malloc-like function. \item[{\em free\_\-fun}]A pointer to your custom free-like function. \end{description}
63 \end{Desc}
64 \hypertarget{group__alloc_ga3}{
65 \index{alloc@{alloc}!peak_allocate@{peak\_\-allocate}}
66 \index{peak_allocate@{peak\_\-allocate}!alloc@{alloc}}
67 \subsubsection[peak\_\-allocate]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ peak\_\-allocate (size\_\-t {\em size})}}
68 \label{group__alloc_ga3}
69
70
71 Allocate memory.
72
73 \begin{Desc}
74 \item[Parameters:]
75 \begin{description}
76 \item[{\em size}]Number of bytes of memory to allocate.\end{description}
77 \end{Desc}
78 \begin{Desc}
79 \item[Returns:]A pointer to the fresh allocated memory. \end{Desc}
80 \hypertarget{group__alloc_ga4}{
81 \index{alloc@{alloc}!peak_deallocate@{peak\_\-deallocate}}
82 \index{peak_deallocate@{peak\_\-deallocate}!alloc@{alloc}}
83 \subsubsection[peak\_\-deallocate]{\setlength{\rightskip}{0pt plus 5cm}void peak\_\-deallocate (void $\ast$ {\em ptr})}}
84 \label{group__alloc_ga4}
85
86
87 Free memory.
88
89 \begin{Desc}
90 \item[Parameters:]
91 \begin{description}
92 \item[{\em ptr}]Pointer to the memory space to deallocate. \end{description}
93 \end{Desc}
94 \hypertarget{group__alloc_ga8}{
95 \index{alloc@{alloc}!peak_get_retcnt@{peak\_\-get\_\-retcnt}}
96 \index{peak_get_retcnt@{peak\_\-get\_\-retcnt}!alloc@{alloc}}
97 \subsubsection[peak\_\-get\_\-retcnt]{\setlength{\rightskip}{0pt plus 5cm}int peak\_\-get\_\-retcnt (void $\ast$ {\em obj})}}
98 \label{group__alloc_ga8}
99
100
101 Get the retain count of a peak object.
102
103 \begin{Desc}
104 \item[Parameters:]
105 \begin{description}
106 \item[{\em obj}]Any peak object.\end{description}
107 \end{Desc}
108 \begin{Desc}
109 \item[Returns:]Retain count or -1 for constant objects. \end{Desc}
110 \hypertarget{group__alloc_ga7}{
111 \index{alloc@{alloc}!peak_release@{peak\_\-release}}
112 \index{peak_release@{peak\_\-release}!alloc@{alloc}}
113 \subsubsection[peak\_\-release]{\setlength{\rightskip}{0pt plus 5cm}void peak\_\-release (void $\ast$ {\em obj})}}
114 \label{group__alloc_ga7}
115
116
117 Release a peak object.
118
119 Decrease the reference count of the object {\em obj\/}. If the refcount is 0, the object is deallocated.
120
121 \begin{Desc}
122 \item[Parameters:]
123 \begin{description}
124 \item[{\em obj}]Any peak object. \end{description}
125 \end{Desc}
126 \hypertarget{group__alloc_ga6}{
127 \index{alloc@{alloc}!peak_retain@{peak\_\-retain}}
128 \index{peak_retain@{peak\_\-retain}!alloc@{alloc}}
129 \subsubsection[peak\_\-retain]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ peak\_\-retain (void $\ast$ {\em obj})}}
130 \label{group__alloc_ga6}
131
132
133 Retain a peak object.
134
135 Increase the reference count of the object {\em obj\/}.
136
137 \begin{Desc}
138 \item[Parameters:]
139 \begin{description}
140 \item[{\em obj}]Any peak object.\end{description}
141 \end{Desc}
142 \begin{Desc}
143 \item[Returns:]For convenience, a pointer to {\em obj\/}. \end{Desc}
144 \hypertarget{group__alloc_ga5}{
145 \index{alloc@{alloc}!peak_strdup@{peak\_\-strdup}}
146 \index{peak_strdup@{peak\_\-strdup}!alloc@{alloc}}
147 \subsubsection[peak\_\-strdup]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ peak\_\-strdup (const char $\ast$ {\em str})}}
148 \label{group__alloc_ga5}
149
150
151 Copy a string.
152
153 \begin{Desc}
154 \item[Parameters:]
155 \begin{description}
156 \item[{\em str}]The string to copy/duplicate.\end{description}
157 \end{Desc}
158 \begin{Desc}
159 \item[Returns:]A pointer to a new allocated copy of the string. It should be passed to \hyperlink{group__alloc_ga5}{peak\_\-deallocate()} if you want to free it. \end{Desc}