Imported Upstream version 0.9.40
[platform/upstream/harfbuzz.git] / docs / html / harfbuzz-hb-blob.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>hb-blob: HarfBuzz Manual</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7 <link rel="home" href="index.html" title="HarfBuzz Manual">
8 <link rel="up" href="ch07.html" title="Harfbuzz API">
9 <link rel="prev" href="harfbuzz-Buffers.html" title="Buffers">
10 <link rel="next" href="harfbuzz-hb-face.html" title="hb-face">
11 <meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts">
17 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18                   <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
19                   <a href="#harfbuzz-hb-blob.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
20 </td>
21 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
22 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
23 <td><a accesskey="p" href="harfbuzz-Buffers.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
24 <td><a accesskey="n" href="harfbuzz-hb-face.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
25 </tr></table>
26 <div class="refentry">
27 <a name="harfbuzz-hb-blob"></a><div class="titlepage"></div>
28 <div class="refnamediv"><table width="100%"><tr>
29 <td valign="top">
30 <h2><span class="refentrytitle"><a name="harfbuzz-hb-blob.top_of_page"></a>hb-blob</span></h2>
31 <p>hb-blob</p>
32 </td>
33 <td class="gallery_image" valign="top" align="right"></td>
34 </tr></table></div>
35 <div class="refsect1">
36 <a name="harfbuzz-hb-blob.functions"></a><h2>Functions</h2>
37 <div class="informaltable"><table width="100%" border="0">
38 <colgroup>
39 <col width="150px" class="functions_return">
40 <col class="functions_name">
41 </colgroup>
42 <tbody>
43 <tr>
44 <td class="function_type">
45 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
46 </td>
47 <td class="function_name">
48 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-create" title="hb_blob_create ()">hb_blob_create</a> <span class="c_punctuation">()</span>
49 </td>
50 </tr>
51 <tr>
52 <td class="function_type">
53 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
54 </td>
55 <td class="function_name">
56 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-sub-blob" title="hb_blob_create_sub_blob ()">hb_blob_create_sub_blob</a> <span class="c_punctuation">()</span>
57 </td>
58 </tr>
59 <tr>
60 <td class="function_type">
61 <span class="returnvalue">void</span>
62 </td>
63 <td class="function_name">
64 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()">hb_blob_destroy</a> <span class="c_punctuation">()</span>
65 </td>
66 </tr>
67 <tr>
68 <td class="function_type">const <span class="returnvalue">char</span> *
69 </td>
70 <td class="function_name">
71 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-data" title="hb_blob_get_data ()">hb_blob_get_data</a> <span class="c_punctuation">()</span>
72 </td>
73 </tr>
74 <tr>
75 <td class="function_type">
76 <span class="returnvalue">char</span> *
77 </td>
78 <td class="function_name">
79 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-data-writable" title="hb_blob_get_data_writable ()">hb_blob_get_data_writable</a> <span class="c_punctuation">()</span>
80 </td>
81 </tr>
82 <tr>
83 <td class="function_type">
84 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
85 </td>
86 <td class="function_name">
87 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-empty" title="hb_blob_get_empty ()">hb_blob_get_empty</a> <span class="c_punctuation">()</span>
88 </td>
89 </tr>
90 <tr>
91 <td class="function_type">unsigned <span class="returnvalue">int</span>
92 </td>
93 <td class="function_name">
94 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-length" title="hb_blob_get_length ()">hb_blob_get_length</a> <span class="c_punctuation">()</span>
95 </td>
96 </tr>
97 <tr>
98 <td class="function_type">
99 <span class="returnvalue">void</span> *
100 </td>
101 <td class="function_name">
102 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-user-data" title="hb_blob_get_user_data ()">hb_blob_get_user_data</a> <span class="c_punctuation">()</span>
103 </td>
104 </tr>
105 <tr>
106 <td class="function_type">
107 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
108 </td>
109 <td class="function_name">
110 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-is-immutable" title="hb_blob_is_immutable ()">hb_blob_is_immutable</a> <span class="c_punctuation">()</span>
111 </td>
112 </tr>
113 <tr>
114 <td class="function_type">
115 <span class="returnvalue">void</span>
116 </td>
117 <td class="function_name">
118 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-make-immutable" title="hb_blob_make_immutable ()">hb_blob_make_immutable</a> <span class="c_punctuation">()</span>
119 </td>
120 </tr>
121 <tr>
122 <td class="function_type">
123 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
124 </td>
125 <td class="function_name">
126 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-reference" title="hb_blob_reference ()">hb_blob_reference</a> <span class="c_punctuation">()</span>
127 </td>
128 </tr>
129 <tr>
130 <td class="function_type">
131 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
132 </td>
133 <td class="function_name">
134 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-set-user-data" title="hb_blob_set_user_data ()">hb_blob_set_user_data</a> <span class="c_punctuation">()</span>
135 </td>
136 </tr>
137 </tbody>
138 </table></div>
139 </div>
140 <a name="hb-blob-t"></a><div class="refsect1">
141 <a name="harfbuzz-hb-blob.other"></a><h2>Types and Values</h2>
142 <div class="informaltable"><table width="100%" border="0">
143 <colgroup>
144 <col width="150px" class="name">
145 <col class="description">
146 </colgroup>
147 <tbody>
148 <tr>
149 <td class="typedef_keyword">typedef</td>
150 <td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t">hb_blob_t</a></td>
151 </tr>
152 <tr>
153 <td class="datatype_keyword">enum</td>
154 <td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-memory-mode-t" title="enum hb_memory_mode_t">hb_memory_mode_t</a></td>
155 </tr>
156 </tbody>
157 </table></div>
158 </div>
159 <div class="refsect1">
160 <a name="harfbuzz-hb-blob.object-hierarchy"></a><h2>Object Hierarchy</h2>
161 <pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
162     <span class="lineart">╰──</span> hb_blob_t
163     <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
164     <span class="lineart">╰──</span> hb_memory_mode_t
165 </pre>
166 </div>
167 <div class="refsect1">
168 <a name="harfbuzz-hb-blob.description"></a><h2>Description</h2>
169 </div>
170 <div class="refsect1">
171 <a name="harfbuzz-hb-blob.functions_details"></a><h2>Functions</h2>
172 <div class="refsect2">
173 <a name="hb-blob-create"></a><h3>hb_blob_create ()</h3>
174 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
175 hb_blob_create (<em class="parameter"><code>const <span class="type">char</span> *data</code></em>,
176                 <em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>,
177                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-memory-mode-t" title="enum hb_memory_mode_t"><span class="type">hb_memory_mode_t</span></a> mode</code></em>,
178                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
179                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
180 <p>Creates a new "blob" object wrapping <em class="parameter"><code>data</code></em>
181 .  The <em class="parameter"><code>mode</code></em>
182  parameter is used
183 to negotiate ownership and lifecycle of <em class="parameter"><code>data</code></em>
184 .</p>
185 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
186 <div class="refsect3">
187 <a name="hb-blob-create.parameters"></a><h4>Parameters</h4>
188 <div class="informaltable"><table width="100%" border="0">
189 <colgroup>
190 <col width="150px" class="parameters_name">
191 <col class="parameters_description">
192 <col width="200px" class="parameters_annotations">
193 </colgroup>
194 <tbody>
195 <tr>
196 <td class="parameter_name"><p>data</p></td>
197 <td class="parameter_description"><p>Pointer to blob data.</p></td>
198 <td class="parameter_annotations"> </td>
199 </tr>
200 <tr>
201 <td class="parameter_name"><p>length</p></td>
202 <td class="parameter_description"><p>Length of <em class="parameter"><code>data</code></em>
203 in bytes.</p></td>
204 <td class="parameter_annotations"> </td>
205 </tr>
206 <tr>
207 <td class="parameter_name"><p>mode</p></td>
208 <td class="parameter_description"><p>Memory mode for <em class="parameter"><code>data</code></em>
209 .</p></td>
210 <td class="parameter_annotations"> </td>
211 </tr>
212 <tr>
213 <td class="parameter_name"><p>user_data</p></td>
214 <td class="parameter_description"><p>Data parameter to pass to <em class="parameter"><code>destroy</code></em>
215 .</p></td>
216 <td class="parameter_annotations"> </td>
217 </tr>
218 <tr>
219 <td class="parameter_name"><p>destroy</p></td>
220 <td class="parameter_description"><p>Callback to call when <em class="parameter"><code>data</code></em>
221 is not needed anymore.</p></td>
222 <td class="parameter_annotations"> </td>
223 </tr>
224 </tbody>
225 </table></div>
226 </div>
227 <div class="refsect3">
228 <a name="hb-blob-create.returns"></a><h4>Returns</h4>
229 <p> New blob, or the empty blob if something failed or if <em class="parameter"><code>length</code></em>
230 is
231 zero.  Destroy with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()"><code class="function">hb_blob_destroy()</code></a>.</p>
232 </div>
233 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
234 </div>
235 <hr>
236 <div class="refsect2">
237 <a name="hb-blob-create-sub-blob"></a><h3>hb_blob_create_sub_blob ()</h3>
238 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
239 hb_blob_create_sub_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *parent</code></em>,
240                          <em class="parameter"><code>unsigned <span class="type">int</span> offset</code></em>,
241                          <em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
242 <p>Returns a blob that represents a range of bytes in <em class="parameter"><code>parent</code></em>
243 .  The new
244 blob is always created with <a class="link" href="harfbuzz-hb-blob.html#HB-MEMORY-MODE-READONLY:CAPS"><code class="literal">HB_MEMORY_MODE_READONLY</code></a>, meaning that it
245 will never modify data in the parent blob.  The parent data is not
246 expected to be modified, and will result in undefined behavior if it
247 is.</p>
248 <p>Makes <em class="parameter"><code>parent</code></em>
249  immutable.</p>
250 <div class="refsect3">
251 <a name="hb-blob-create-sub-blob.parameters"></a><h4>Parameters</h4>
252 <div class="informaltable"><table width="100%" border="0">
253 <colgroup>
254 <col width="150px" class="parameters_name">
255 <col class="parameters_description">
256 <col width="200px" class="parameters_annotations">
257 </colgroup>
258 <tbody>
259 <tr>
260 <td class="parameter_name"><p>parent</p></td>
261 <td class="parameter_description"><p>Parent blob.</p></td>
262 <td class="parameter_annotations"> </td>
263 </tr>
264 <tr>
265 <td class="parameter_name"><p>offset</p></td>
266 <td class="parameter_description"><p>Start offset of sub-blob within <em class="parameter"><code>parent</code></em>
267 , in bytes.</p></td>
268 <td class="parameter_annotations"> </td>
269 </tr>
270 <tr>
271 <td class="parameter_name"><p>length</p></td>
272 <td class="parameter_description"><p>Length of sub-blob.</p></td>
273 <td class="parameter_annotations"> </td>
274 </tr>
275 </tbody>
276 </table></div>
277 </div>
278 <div class="refsect3">
279 <a name="hb-blob-create-sub-blob.returns"></a><h4>Returns</h4>
280 <p> New blob, or the empty blob if something failed or if
281 <em class="parameter"><code>length</code></em>
282 is zero or <em class="parameter"><code>offset</code></em>
283 is beyond the end of <em class="parameter"><code>parent</code></em>
284 's data.  Destroy
285 with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()"><code class="function">hb_blob_destroy()</code></a>.</p>
286 </div>
287 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
288 </div>
289 <hr>
290 <div class="refsect2">
291 <a name="hb-blob-destroy"></a><h3>hb_blob_destroy ()</h3>
292 <pre class="programlisting"><span class="returnvalue">void</span>
293 hb_blob_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
294 <p>Descreases the reference count on <em class="parameter"><code>blob</code></em>
295 , and if it reaches zero, destroys
296 <em class="parameter"><code>blob</code></em>
297 , freeing all memory, possibly calling the destroy-callback the blob
298 was created for if it has not been called already.</p>
299 <p>See TODO:link object types for more information.</p>
300 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
301 <div class="refsect3">
302 <a name="hb-blob-destroy.parameters"></a><h4>Parameters</h4>
303 <div class="informaltable"><table width="100%" border="0">
304 <colgroup>
305 <col width="150px" class="parameters_name">
306 <col class="parameters_description">
307 <col width="200px" class="parameters_annotations">
308 </colgroup>
309 <tbody><tr>
310 <td class="parameter_name"><p>blob</p></td>
311 <td class="parameter_description"><p>a blob.</p></td>
312 <td class="parameter_annotations"> </td>
313 </tr></tbody>
314 </table></div>
315 </div>
316 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
317 </div>
318 <hr>
319 <div class="refsect2">
320 <a name="hb-blob-get-data"></a><h3>hb_blob_get_data ()</h3>
321 <pre class="programlisting">const <span class="returnvalue">char</span> *
322 hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
323                   <em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
324 <div class="refsect3">
325 <a name="hb-blob-get-data.parameters"></a><h4>Parameters</h4>
326 <div class="informaltable"><table width="100%" border="0">
327 <colgroup>
328 <col width="150px" class="parameters_name">
329 <col class="parameters_description">
330 <col width="200px" class="parameters_annotations">
331 </colgroup>
332 <tbody>
333 <tr>
334 <td class="parameter_name"><p>blob</p></td>
335 <td class="parameter_description"><p>a blob.</p></td>
336 <td class="parameter_annotations"> </td>
337 </tr>
338 <tr>
339 <td class="parameter_name"><p>length</p></td>
340 <td class="parameter_description"><p>. </p></td>
341 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
342 </tr>
343 </tbody>
344 </table></div>
345 </div>
346 <div class="refsect3">
347 <a name="hb-blob-get-data.returns"></a><h4>Returns</h4>
348 <p>. </p>
349 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
350 </div>
351 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
352 </div>
353 <hr>
354 <div class="refsect2">
355 <a name="hb-blob-get-data-writable"></a><h3>hb_blob_get_data_writable ()</h3>
356 <pre class="programlisting"><span class="returnvalue">char</span> *
357 hb_blob_get_data_writable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
358                            <em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
359 <p>Tries to make blob data writable (possibly copying it) and
360 return pointer to data.</p>
361 <p>Fails if blob has been made immutable, or if memory allocation
362 fails.</p>
363 <div class="refsect3">
364 <a name="hb-blob-get-data-writable.parameters"></a><h4>Parameters</h4>
365 <div class="informaltable"><table width="100%" border="0">
366 <colgroup>
367 <col width="150px" class="parameters_name">
368 <col class="parameters_description">
369 <col width="200px" class="parameters_annotations">
370 </colgroup>
371 <tbody>
372 <tr>
373 <td class="parameter_name"><p>blob</p></td>
374 <td class="parameter_description"><p>a blob.</p></td>
375 <td class="parameter_annotations"> </td>
376 </tr>
377 <tr>
378 <td class="parameter_name"><p>length</p></td>
379 <td class="parameter_description"><p> output length of the writable data. </p></td>
380 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
381 </tr>
382 </tbody>
383 </table></div>
384 </div>
385 <div class="refsect3">
386 <a name="hb-blob-get-data-writable.returns"></a><h4>Returns</h4>
387 <p> Writable blob data,
388 or <code class="literal">NULL</code> if failed. </p>
389 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
390 </div>
391 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
392 </div>
393 <hr>
394 <div class="refsect2">
395 <a name="hb-blob-get-empty"></a><h3>hb_blob_get_empty ()</h3>
396 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
397 hb_blob_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
398 <p>Returns the singleton empty blob.</p>
399 <p>See TODO:link object types for more information.</p>
400 <div class="refsect3">
401 <a name="hb-blob-get-empty.returns"></a><h4>Returns</h4>
402 <p> the empty blob. </p>
403 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
404 </div>
405 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
406 </div>
407 <hr>
408 <div class="refsect2">
409 <a name="hb-blob-get-length"></a><h3>hb_blob_get_length ()</h3>
410 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
411 hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
412 <div class="refsect3">
413 <a name="hb-blob-get-length.parameters"></a><h4>Parameters</h4>
414 <div class="informaltable"><table width="100%" border="0">
415 <colgroup>
416 <col width="150px" class="parameters_name">
417 <col class="parameters_description">
418 <col width="200px" class="parameters_annotations">
419 </colgroup>
420 <tbody><tr>
421 <td class="parameter_name"><p>blob</p></td>
422 <td class="parameter_description"><p>a blob.</p></td>
423 <td class="parameter_annotations"> </td>
424 </tr></tbody>
425 </table></div>
426 </div>
427 <div class="refsect3">
428 <a name="hb-blob-get-length.returns"></a><h4>Returns</h4>
429 <p> the length of blob data in bytes.</p>
430 </div>
431 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
432 </div>
433 <hr>
434 <div class="refsect2">
435 <a name="hb-blob-get-user-data"></a><h3>hb_blob_get_user_data ()</h3>
436 <pre class="programlisting"><span class="returnvalue">void</span> *
437 hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
438                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
439 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
440 <div class="refsect3">
441 <a name="hb-blob-get-user-data.parameters"></a><h4>Parameters</h4>
442 <div class="informaltable"><table width="100%" border="0">
443 <colgroup>
444 <col width="150px" class="parameters_name">
445 <col class="parameters_description">
446 <col width="200px" class="parameters_annotations">
447 </colgroup>
448 <tbody>
449 <tr>
450 <td class="parameter_name"><p>blob</p></td>
451 <td class="parameter_description"><p>a blob.</p></td>
452 <td class="parameter_annotations"> </td>
453 </tr>
454 <tr>
455 <td class="parameter_name"><p>key</p></td>
456 <td class="parameter_description"><p>key for data to get.</p></td>
457 <td class="parameter_annotations"> </td>
458 </tr>
459 </tbody>
460 </table></div>
461 </div>
462 <div class="refsect3">
463 <a name="hb-blob-get-user-data.returns"></a><h4>Returns</h4>
464 <p>. </p>
465 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
466 </div>
467 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
468 </div>
469 <hr>
470 <div class="refsect2">
471 <a name="hb-blob-is-immutable"></a><h3>hb_blob_is_immutable ()</h3>
472 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
473 hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
474 <div class="refsect3">
475 <a name="hb-blob-is-immutable.parameters"></a><h4>Parameters</h4>
476 <div class="informaltable"><table width="100%" border="0">
477 <colgroup>
478 <col width="150px" class="parameters_name">
479 <col class="parameters_description">
480 <col width="200px" class="parameters_annotations">
481 </colgroup>
482 <tbody><tr>
483 <td class="parameter_name"><p>blob</p></td>
484 <td class="parameter_description"><p>a blob.</p></td>
485 <td class="parameter_annotations"> </td>
486 </tr></tbody>
487 </table></div>
488 </div>
489 <div class="refsect3">
490 <a name="hb-blob-is-immutable.returns"></a><h4>Returns</h4>
491 <p> TODO</p>
492 </div>
493 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
494 </div>
495 <hr>
496 <div class="refsect2">
497 <a name="hb-blob-make-immutable"></a><h3>hb_blob_make_immutable ()</h3>
498 <pre class="programlisting"><span class="returnvalue">void</span>
499 hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
500 <div class="refsect3">
501 <a name="hb-blob-make-immutable.parameters"></a><h4>Parameters</h4>
502 <div class="informaltable"><table width="100%" border="0">
503 <colgroup>
504 <col width="150px" class="parameters_name">
505 <col class="parameters_description">
506 <col width="200px" class="parameters_annotations">
507 </colgroup>
508 <tbody><tr>
509 <td class="parameter_name"><p>blob</p></td>
510 <td class="parameter_description"><p>a blob.</p></td>
511 <td class="parameter_annotations"> </td>
512 </tr></tbody>
513 </table></div>
514 </div>
515 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
516 </div>
517 <hr>
518 <div class="refsect2">
519 <a name="hb-blob-reference"></a><h3>hb_blob_reference ()</h3>
520 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
521 hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
522 <p>Increases the reference count on <em class="parameter"><code>blob</code></em>
523 .</p>
524 <p>See TODO:link object types for more information.</p>
525 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
526 <div class="refsect3">
527 <a name="hb-blob-reference.parameters"></a><h4>Parameters</h4>
528 <div class="informaltable"><table width="100%" border="0">
529 <colgroup>
530 <col width="150px" class="parameters_name">
531 <col class="parameters_description">
532 <col width="200px" class="parameters_annotations">
533 </colgroup>
534 <tbody><tr>
535 <td class="parameter_name"><p>blob</p></td>
536 <td class="parameter_description"><p>a blob.</p></td>
537 <td class="parameter_annotations"> </td>
538 </tr></tbody>
539 </table></div>
540 </div>
541 <div class="refsect3">
542 <a name="hb-blob-reference.returns"></a><h4>Returns</h4>
543 <p> <em class="parameter"><code>blob</code></em>
544 .</p>
545 </div>
546 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
547 </div>
548 <hr>
549 <div class="refsect2">
550 <a name="hb-blob-set-user-data"></a><h3>hb_blob_set_user_data ()</h3>
551 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
552 hb_blob_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
553                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
554                        <em class="parameter"><code><span class="type">void</span> *data</code></em>,
555                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
556                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
557 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
558 <div class="refsect3">
559 <a name="hb-blob-set-user-data.parameters"></a><h4>Parameters</h4>
560 <div class="informaltable"><table width="100%" border="0">
561 <colgroup>
562 <col width="150px" class="parameters_name">
563 <col class="parameters_description">
564 <col width="200px" class="parameters_annotations">
565 </colgroup>
566 <tbody>
567 <tr>
568 <td class="parameter_name"><p>blob</p></td>
569 <td class="parameter_description"><p>a blob.</p></td>
570 <td class="parameter_annotations"> </td>
571 </tr>
572 <tr>
573 <td class="parameter_name"><p>key</p></td>
574 <td class="parameter_description"><p>key for data to set.</p></td>
575 <td class="parameter_annotations"> </td>
576 </tr>
577 <tr>
578 <td class="parameter_name"><p>data</p></td>
579 <td class="parameter_description"><p>data to set.</p></td>
580 <td class="parameter_annotations"> </td>
581 </tr>
582 <tr>
583 <td class="parameter_name"><p>destroy</p></td>
584 <td class="parameter_description"><p>callback to call when <em class="parameter"><code>data</code></em>
585 is not needed anymore.</p></td>
586 <td class="parameter_annotations"> </td>
587 </tr>
588 <tr>
589 <td class="parameter_name"><p>replace</p></td>
590 <td class="parameter_description"><p>whether to replace an existing data with the same key.</p></td>
591 <td class="parameter_annotations"> </td>
592 </tr>
593 </tbody>
594 </table></div>
595 </div>
596 <p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
597 </div>
598 </div>
599 <div class="refsect1">
600 <a name="harfbuzz-hb-blob.other_details"></a><h2>Types and Values</h2>
601 <div class="refsect2">
602 <a name="hb-blob-t"></a><h3>hb_blob_t</h3>
603 <pre class="programlisting">typedef struct hb_blob_t hb_blob_t;
604 </pre>
605 </div>
606 <hr>
607 <div class="refsect2">
608 <a name="hb-memory-mode-t"></a><h3>enum hb_memory_mode_t</h3>
609 <div class="refsect3">
610 <a name="hb-memory-mode-t.members"></a><h4>Members</h4>
611 <div class="informaltable"><table width="100%" border="0">
612 <colgroup>
613 <col width="300px" class="enum_members_name">
614 <col class="enum_members_description">
615 <col width="200px" class="enum_members_annotations">
616 </colgroup>
617 <tbody>
618 <tr>
619 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-DUPLICATE:CAPS"></a>HB_MEMORY_MODE_DUPLICATE</p></td>
620 <td> </td>
621 <td> </td>
622 </tr>
623 <tr>
624 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-READONLY:CAPS"></a>HB_MEMORY_MODE_READONLY</p></td>
625 <td> </td>
626 <td> </td>
627 </tr>
628 <tr>
629 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-WRITABLE:CAPS"></a>HB_MEMORY_MODE_WRITABLE</p></td>
630 <td> </td>
631 <td> </td>
632 </tr>
633 <tr>
634 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-READONLY-MAY-MAKE-WRITABLE:CAPS"></a>HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE</p></td>
635 <td> </td>
636 <td> </td>
637 </tr>
638 </tbody>
639 </table></div>
640 </div>
641 </div>
642 </div>
643 </div>
644 <div class="footer">
645 <hr>Generated by GTK-Doc V1.24.1</div>
646 </body>
647 </html>