xref: /netbsd-src/external/mit/libcbor/dist/docs/doxygen/strings_8c.html (revision 5dd36a3bc8bf2a9dec29ceb6349550414570c447)
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.12"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>libcbor: src/cbor/strings.c File Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="search/search.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="search/searchdata.js"></script>
14<script type="text/javascript" src="search/search.js"></script>
15<link href="doxygen.css" rel="stylesheet" type="text/css" />
16<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
17</head>
18<body>
19<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
20<div id="titlearea">
21<table cellspacing="0" cellpadding="0">
22 <tbody>
23 <tr style="height: 56px;">
24  <td id="projectalign" style="padding-left: 0.5em;">
25   <div id="projectname">libcbor
26   &#160;<span id="projectnumber">0.5.0</span>
27   </div>
28   <div id="projectbrief">libcbor is a C library for parsing and generating CBOR, the general-purpose schema-less binary data format.</div>
29  </td>
30 </tr>
31 </tbody>
32</table>
33</div>
34<!-- end header part -->
35<!-- Generated by Doxygen 1.8.12 -->
36<script type="text/javascript">
37var searchBox = new SearchBox("searchBox", "search",false,'Search');
38</script>
39<script type="text/javascript" src="menudata.js"></script>
40<script type="text/javascript" src="menu.js"></script>
41<script type="text/javascript">
42$(function() {
43  initMenu('',true,false,'search.php','Search');
44  $(document).ready(function() { init_search(); });
45});
46</script>
47<div id="main-nav"></div>
48<!-- window showing the filter options -->
49<div id="MSearchSelectWindow"
50     onmouseover="return searchBox.OnSearchSelectShow()"
51     onmouseout="return searchBox.OnSearchSelectHide()"
52     onkeydown="return searchBox.OnSearchSelectKey(event)">
53</div>
54
55<!-- iframe showing the search results (closed by default) -->
56<div id="MSearchResultsWindow">
57<iframe src="javascript:void(0)" frameborder="0"
58        name="MSearchResults" id="MSearchResults">
59</iframe>
60</div>
61
62<div id="nav-path" class="navpath">
63  <ul>
64<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_cb565ba51d82ea933604984cbab6233d.html">cbor</a></li>  </ul>
65</div>
66</div><!-- top -->
67<div class="header">
68  <div class="summary">
69<a href="#func-members">Functions</a>  </div>
70  <div class="headertitle">
71<div class="title">strings.c File Reference</div>  </div>
72</div><!--header-->
73<div class="contents">
74<div class="textblock"><code>#include &lt;string.h&gt;</code><br />
75<code>#include &quot;<a class="el" href="strings_8h_source.html">strings.h</a>&quot;</code><br />
76<code>#include &quot;<a class="el" href="memory__utils_8h_source.html">internal/memory_utils.h</a>&quot;</code><br />
77</div>
78<p><a href="strings_8c_source.html">Go to the source code of this file.</a></p>
79<table class="memberdecls">
80<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
81Functions</h2></td></tr>
82<tr class="memitem:a6e2516983e412b9d22fd1fccbeded632"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a6e2516983e412b9d22fd1fccbeded632">cbor_new_definite_string</a> ()</td></tr>
83<tr class="memdesc:a6e2516983e412b9d22fd1fccbeded632"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new definite string.  <a href="#a6e2516983e412b9d22fd1fccbeded632">More...</a><br /></td></tr>
84<tr class="separator:a6e2516983e412b9d22fd1fccbeded632"><td class="memSeparator" colspan="2">&#160;</td></tr>
85<tr class="memitem:a226f91c7bfd6be9b0a52cdc6f0b17741"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a226f91c7bfd6be9b0a52cdc6f0b17741">cbor_new_indefinite_string</a> ()</td></tr>
86<tr class="memdesc:a226f91c7bfd6be9b0a52cdc6f0b17741"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new indefinite string.  <a href="#a226f91c7bfd6be9b0a52cdc6f0b17741">More...</a><br /></td></tr>
87<tr class="separator:a226f91c7bfd6be9b0a52cdc6f0b17741"><td class="memSeparator" colspan="2">&#160;</td></tr>
88<tr class="memitem:a61a9388aca4fc7ee5355eb92a6d56536"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a61a9388aca4fc7ee5355eb92a6d56536">cbor_build_string</a> (const char *val)</td></tr>
89<tr class="memdesc:a61a9388aca4fc7ee5355eb92a6d56536"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new string and initializes it.  <a href="#a61a9388aca4fc7ee5355eb92a6d56536">More...</a><br /></td></tr>
90<tr class="separator:a61a9388aca4fc7ee5355eb92a6d56536"><td class="memSeparator" colspan="2">&#160;</td></tr>
91<tr class="memitem:a26f8c53bb33641408921c388bf539b0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a26f8c53bb33641408921c388bf539b0c">cbor_build_stringn</a> (const char *val, size_t length)</td></tr>
92<tr class="memdesc:a26f8c53bb33641408921c388bf539b0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new string and initializes it.  <a href="#a26f8c53bb33641408921c388bf539b0c">More...</a><br /></td></tr>
93<tr class="separator:a26f8c53bb33641408921c388bf539b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
94<tr class="memitem:a5e9292c04df380f2c775fe599511a7ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a5e9292c04df380f2c775fe599511a7ab">cbor_string_set_handle</a> (<a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item, <a class="el" href="data_8h.html#aabb40e458ece40477e134a69c76693e8">cbor_mutable_data</a> <a class="el" href="common_8h.html#a9ac79315ed2dcf2c9587e8e3a9a6bc97">CBOR_RESTRICT_POINTER</a> data, size_t length)</td></tr>
95<tr class="memdesc:a5e9292c04df380f2c775fe599511a7ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the handle to the underlying string.  <a href="#a5e9292c04df380f2c775fe599511a7ab">More...</a><br /></td></tr>
96<tr class="separator:a5e9292c04df380f2c775fe599511a7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
97<tr class="memitem:a81d1160eed81b2a29b6c5e9ff6b9e02a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a81d1160eed81b2a29b6c5e9ff6b9e02a">cbor_string_chunks_handle</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
98<tr class="memdesc:a81d1160eed81b2a29b6c5e9ff6b9e02a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the handle to the array of chunks.  <a href="#a81d1160eed81b2a29b6c5e9ff6b9e02a">More...</a><br /></td></tr>
99<tr class="separator:a81d1160eed81b2a29b6c5e9ff6b9e02a"><td class="memSeparator" colspan="2">&#160;</td></tr>
100<tr class="memitem:ad8062db21711a51ae520cc1e4f5fe5ab"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#ad8062db21711a51ae520cc1e4f5fe5ab">cbor_string_chunk_count</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
101<tr class="memdesc:ad8062db21711a51ae520cc1e4f5fe5ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of chunks this string consist of.  <a href="#ad8062db21711a51ae520cc1e4f5fe5ab">More...</a><br /></td></tr>
102<tr class="separator:ad8062db21711a51ae520cc1e4f5fe5ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
103<tr class="memitem:a634462c7237298a196413cd62d7d1877"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a634462c7237298a196413cd62d7d1877">cbor_string_add_chunk</a> (<a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item, <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *chunk)</td></tr>
104<tr class="memdesc:a634462c7237298a196413cd62d7d1877"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a chunk to the string.  <a href="#a634462c7237298a196413cd62d7d1877">More...</a><br /></td></tr>
105<tr class="separator:a634462c7237298a196413cd62d7d1877"><td class="memSeparator" colspan="2">&#160;</td></tr>
106<tr class="memitem:aa0c17825f920ebf122bd7b9abede919f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#aa0c17825f920ebf122bd7b9abede919f">cbor_string_length</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
107<tr class="memdesc:aa0c17825f920ebf122bd7b9abede919f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the underlying string.  <a href="#aa0c17825f920ebf122bd7b9abede919f">More...</a><br /></td></tr>
108<tr class="separator:aa0c17825f920ebf122bd7b9abede919f"><td class="memSeparator" colspan="2">&#160;</td></tr>
109<tr class="memitem:ae9e5da7bdf2a79fab7965caeff49d5bb"><td class="memItemLeft" align="right" valign="top">unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#ae9e5da7bdf2a79fab7965caeff49d5bb">cbor_string_handle</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
110<tr class="memdesc:ae9e5da7bdf2a79fab7965caeff49d5bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the handle to the underlying string.  <a href="#ae9e5da7bdf2a79fab7965caeff49d5bb">More...</a><br /></td></tr>
111<tr class="separator:ae9e5da7bdf2a79fab7965caeff49d5bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
112<tr class="memitem:a90c1cf7781f7ef1f3549f497abd259ef"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#a90c1cf7781f7ef1f3549f497abd259ef">cbor_string_codepoint_count</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
113<tr class="memdesc:a90c1cf7781f7ef1f3549f497abd259ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of codepoints in this string.  <a href="#a90c1cf7781f7ef1f3549f497abd259ef">More...</a><br /></td></tr>
114<tr class="separator:a90c1cf7781f7ef1f3549f497abd259ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:aa2778891e70dec4cd59c9a969294d4aa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#aa2778891e70dec4cd59c9a969294d4aa">cbor_string_is_definite</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
116<tr class="memdesc:aa2778891e70dec4cd59c9a969294d4aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the string definite?  <a href="#aa2778891e70dec4cd59c9a969294d4aa">More...</a><br /></td></tr>
117<tr class="separator:aa2778891e70dec4cd59c9a969294d4aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
118<tr class="memitem:aa1a92438a04ae77beea9a17910805530"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8c.html#aa1a92438a04ae77beea9a17910805530">cbor_string_is_indefinite</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
119<tr class="memdesc:aa1a92438a04ae77beea9a17910805530"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the string indefinite?  <a href="#aa1a92438a04ae77beea9a17910805530">More...</a><br /></td></tr>
120<tr class="separator:aa1a92438a04ae77beea9a17910805530"><td class="memSeparator" colspan="2">&#160;</td></tr>
121</table>
122<h2 class="groupheader">Function Documentation</h2>
123<a id="a61a9388aca4fc7ee5355eb92a6d56536"></a>
124<h2 class="memtitle"><span class="permalink"><a href="#a61a9388aca4fc7ee5355eb92a6d56536">&sect;&nbsp;</a></span>cbor_build_string()</h2>
125
126<div class="memitem">
127<div class="memproto">
128      <table class="memname">
129        <tr>
130          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_build_string </td>
131          <td>(</td>
132          <td class="paramtype">const char *&#160;</td>
133          <td class="paramname"><em>val</em></td><td>)</td>
134          <td></td>
135        </tr>
136      </table>
137</div><div class="memdoc">
138
139<p>Creates a new string and initializes it. </p>
140<p>The <code>val</code> will be copied to a newly allocated block</p>
141<dl class="params"><dt>Parameters</dt><dd>
142  <table class="params">
143    <tr><td class="paramname">val</td><td>A null-terminated UTF-8 string </td></tr>
144  </table>
145  </dd>
146</dl>
147<dl class="section return"><dt>Returns</dt><dd>A <b>new</b> string with content <code>handle</code>. <code>NULL</code> on malloc failure. </dd></dl>
148
149<p>Definition at line <a class="el" href="strings_8c_source.html#l00040">40</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
150
151</div>
152</div>
153<a id="a26f8c53bb33641408921c388bf539b0c"></a>
154<h2 class="memtitle"><span class="permalink"><a href="#a26f8c53bb33641408921c388bf539b0c">&sect;&nbsp;</a></span>cbor_build_stringn()</h2>
155
156<div class="memitem">
157<div class="memproto">
158      <table class="memname">
159        <tr>
160          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_build_stringn </td>
161          <td>(</td>
162          <td class="paramtype">const char *&#160;</td>
163          <td class="paramname"><em>val</em>, </td>
164        </tr>
165        <tr>
166          <td class="paramkey"></td>
167          <td></td>
168          <td class="paramtype">size_t&#160;</td>
169          <td class="paramname"><em>length</em>&#160;</td>
170        </tr>
171        <tr>
172          <td></td>
173          <td>)</td>
174          <td></td><td></td>
175        </tr>
176      </table>
177</div><div class="memdoc">
178
179<p>Creates a new string and initializes it. </p>
180<p>The <code>handle</code> will be copied to a newly allocated block</p>
181<dl class="params"><dt>Parameters</dt><dd>
182  <table class="params">
183    <tr><td class="paramname">val</td><td>A UTF-8 string, at least <code>length</code> long (excluding the null byte) </td></tr>
184  </table>
185  </dd>
186</dl>
187<dl class="section return"><dt>Returns</dt><dd>A <b>new</b> string with content <code>handle</code>. <code>NULL</code> on malloc failure. </dd></dl>
188
189<p>Definition at line <a class="el" href="strings_8c_source.html#l00050">50</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
190
191</div>
192</div>
193<a id="a6e2516983e412b9d22fd1fccbeded632"></a>
194<h2 class="memtitle"><span class="permalink"><a href="#a6e2516983e412b9d22fd1fccbeded632">&sect;&nbsp;</a></span>cbor_new_definite_string()</h2>
195
196<div class="memitem">
197<div class="memproto">
198      <table class="memname">
199        <tr>
200          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_new_definite_string </td>
201          <td>(</td>
202          <td class="paramname"></td><td>)</td>
203          <td></td>
204        </tr>
205      </table>
206</div><div class="memdoc">
207
208<p>Creates a new definite string. </p>
209<p>The handle is initialized to <code>NULL</code> and length to 0</p>
210<dl class="section return"><dt>Returns</dt><dd><b>new</b> definite string. <code>NULL</code> on malloc failure. </dd></dl>
211
212<p>Definition at line <a class="el" href="strings_8c_source.html#l00012">12</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
213
214</div>
215</div>
216<a id="a226f91c7bfd6be9b0a52cdc6f0b17741"></a>
217<h2 class="memtitle"><span class="permalink"><a href="#a226f91c7bfd6be9b0a52cdc6f0b17741">&sect;&nbsp;</a></span>cbor_new_indefinite_string()</h2>
218
219<div class="memitem">
220<div class="memproto">
221      <table class="memname">
222        <tr>
223          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_new_indefinite_string </td>
224          <td>(</td>
225          <td class="paramname"></td><td>)</td>
226          <td></td>
227        </tr>
228      </table>
229</div><div class="memdoc">
230
231<p>Creates a new indefinite string. </p>
232<p>The chunks array is initialized to <code>NULL</code> and chunkcount to 0</p>
233<dl class="section return"><dt>Returns</dt><dd><b>new</b> indefinite string. <code>NULL</code> on malloc failure. </dd></dl>
234
235<p>Definition at line <a class="el" href="strings_8c_source.html#l00023">23</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
236
237</div>
238</div>
239<a id="a634462c7237298a196413cd62d7d1877"></a>
240<h2 class="memtitle"><span class="permalink"><a href="#a634462c7237298a196413cd62d7d1877">&sect;&nbsp;</a></span>cbor_string_add_chunk()</h2>
241
242<div class="memitem">
243<div class="memproto">
244      <table class="memname">
245        <tr>
246          <td class="memname">bool cbor_string_add_chunk </td>
247          <td>(</td>
248          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
249          <td class="paramname"><em>item</em>, </td>
250        </tr>
251        <tr>
252          <td class="paramkey"></td>
253          <td></td>
254          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
255          <td class="paramname"><em>chunk</em>&#160;</td>
256        </tr>
257        <tr>
258          <td></td>
259          <td>)</td>
260          <td></td><td></td>
261        </tr>
262      </table>
263</div><div class="memdoc">
264
265<p>Appends a chunk to the string. </p>
266<p>Indefinite strings only.</p>
267<p>May realloc the chunk storage.</p>
268<dl class="params"><dt>Parameters</dt><dd>
269  <table class="params">
270    <tr><td class="paramname">item[borrow]</td><td>An indefinite string </td></tr>
271    <tr><td class="paramname">item[incref]</td><td>A definite string </td></tr>
272  </table>
273  </dd>
274</dl>
275<dl class="section return"><dt>Returns</dt><dd>true on success. false on realloc failure. In that case, the refcount of <code>chunk</code> is not increased and the <code>item</code> is left intact. </dd></dl>
276
277<p>Definition at line <a class="el" href="strings_8c_source.html#l00082">82</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
278
279</div>
280</div>
281<a id="ad8062db21711a51ae520cc1e4f5fe5ab"></a>
282<h2 class="memtitle"><span class="permalink"><a href="#ad8062db21711a51ae520cc1e4f5fe5ab">&sect;&nbsp;</a></span>cbor_string_chunk_count()</h2>
283
284<div class="memitem">
285<div class="memproto">
286      <table class="memname">
287        <tr>
288          <td class="memname">size_t cbor_string_chunk_count </td>
289          <td>(</td>
290          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
291          <td class="paramname"><em>item</em></td><td>)</td>
292          <td></td>
293        </tr>
294      </table>
295</div><div class="memdoc">
296
297<p>Get the number of chunks this string consist of. </p>
298<dl class="params"><dt>Parameters</dt><dd>
299  <table class="params">
300    <tr><td class="paramname">item[borrow]</td><td>A indefinite string </td></tr>
301  </table>
302  </dd>
303</dl>
304<dl class="section return"><dt>Returns</dt><dd>The chunk count. 0 for freshly created items. </dd></dl>
305
306<p>Definition at line <a class="el" href="strings_8c_source.html#l00074">74</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
307
308</div>
309</div>
310<a id="a81d1160eed81b2a29b6c5e9ff6b9e02a"></a>
311<h2 class="memtitle"><span class="permalink"><a href="#a81d1160eed81b2a29b6c5e9ff6b9e02a">&sect;&nbsp;</a></span>cbor_string_chunks_handle()</h2>
312
313<div class="memitem">
314<div class="memproto">
315      <table class="memname">
316        <tr>
317          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>** cbor_string_chunks_handle </td>
318          <td>(</td>
319          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
320          <td class="paramname"><em>item</em></td><td>)</td>
321          <td></td>
322        </tr>
323      </table>
324</div><div class="memdoc">
325
326<p>Get the handle to the array of chunks. </p>
327<p>Manipulations with the memory block (e.g. sorting it) are allowed, but the validity and the number of chunks must be retained.</p>
328<dl class="params"><dt>Parameters</dt><dd>
329  <table class="params">
330    <tr><td class="paramname">item[borrow]</td><td>A indefinite string </td></tr>
331  </table>
332  </dd>
333</dl>
334<dl class="section return"><dt>Returns</dt><dd>array of <a class="el" href="strings_8h.html#ad8062db21711a51ae520cc1e4f5fe5ab" title="Get the number of chunks this string consist of. ">cbor_string_chunk_count</a> definite strings </dd></dl>
335
336<p>Definition at line <a class="el" href="strings_8c_source.html#l00067">67</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
337
338</div>
339</div>
340<a id="a90c1cf7781f7ef1f3549f497abd259ef"></a>
341<h2 class="memtitle"><span class="permalink"><a href="#a90c1cf7781f7ef1f3549f497abd259ef">&sect;&nbsp;</a></span>cbor_string_codepoint_count()</h2>
342
343<div class="memitem">
344<div class="memproto">
345      <table class="memname">
346        <tr>
347          <td class="memname">size_t cbor_string_codepoint_count </td>
348          <td>(</td>
349          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
350          <td class="paramname"><em>item</em></td><td>)</td>
351          <td></td>
352        </tr>
353      </table>
354</div><div class="memdoc">
355
356<p>The number of codepoints in this string. </p>
357<p>Might differ from length if there are multibyte ones</p>
358<dl class="params"><dt>Parameters</dt><dd>
359  <table class="params">
360    <tr><td class="paramname">item[borrow]</td><td>A string </td></tr>
361  </table>
362  </dd>
363</dl>
364<dl class="section return"><dt>Returns</dt><dd>The number of codepoints in this string </dd></dl>
365
366<p>Definition at line <a class="el" href="strings_8c_source.html#l00118">118</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
367
368</div>
369</div>
370<a id="ae9e5da7bdf2a79fab7965caeff49d5bb"></a>
371<h2 class="memtitle"><span class="permalink"><a href="#ae9e5da7bdf2a79fab7965caeff49d5bb">&sect;&nbsp;</a></span>cbor_string_handle()</h2>
372
373<div class="memitem">
374<div class="memproto">
375      <table class="memname">
376        <tr>
377          <td class="memname">unsigned char* cbor_string_handle </td>
378          <td>(</td>
379          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
380          <td class="paramname"><em>item</em></td><td>)</td>
381          <td></td>
382        </tr>
383      </table>
384</div><div class="memdoc">
385
386<p>Get the handle to the underlying string. </p>
387<p>Definite items only. Modifying the data is allowed. In that case, the caller takes responsibility for the effect on items this item might be a part of</p>
388<dl class="params"><dt>Parameters</dt><dd>
389  <table class="params">
390    <tr><td class="paramname">item[borrow]</td><td>A definite string </td></tr>
391  </table>
392  </dd>
393</dl>
394<dl class="section return"><dt>Returns</dt><dd>The address of the underlying string. <code>NULL</code> if no data have been assigned yet. </dd></dl>
395
396<p>Definition at line <a class="el" href="strings_8c_source.html#l00112">112</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
397
398</div>
399</div>
400<a id="aa2778891e70dec4cd59c9a969294d4aa"></a>
401<h2 class="memtitle"><span class="permalink"><a href="#aa2778891e70dec4cd59c9a969294d4aa">&sect;&nbsp;</a></span>cbor_string_is_definite()</h2>
402
403<div class="memitem">
404<div class="memproto">
405      <table class="memname">
406        <tr>
407          <td class="memname">bool cbor_string_is_definite </td>
408          <td>(</td>
409          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
410          <td class="paramname"><em>item</em></td><td>)</td>
411          <td></td>
412        </tr>
413      </table>
414</div><div class="memdoc">
415
416<p>Is the string definite? </p>
417<dl class="params"><dt>Parameters</dt><dd>
418  <table class="params">
419    <tr><td class="paramname">item[borrow]</td><td>a string </td></tr>
420  </table>
421  </dd>
422</dl>
423<dl class="section return"><dt>Returns</dt><dd>Is the string definite? </dd></dl>
424
425<p>Definition at line <a class="el" href="strings_8c_source.html#l00124">124</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
426
427</div>
428</div>
429<a id="aa1a92438a04ae77beea9a17910805530"></a>
430<h2 class="memtitle"><span class="permalink"><a href="#aa1a92438a04ae77beea9a17910805530">&sect;&nbsp;</a></span>cbor_string_is_indefinite()</h2>
431
432<div class="memitem">
433<div class="memproto">
434      <table class="memname">
435        <tr>
436          <td class="memname">bool cbor_string_is_indefinite </td>
437          <td>(</td>
438          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
439          <td class="paramname"><em>item</em></td><td>)</td>
440          <td></td>
441        </tr>
442      </table>
443</div><div class="memdoc">
444
445<p>Is the string indefinite? </p>
446<dl class="params"><dt>Parameters</dt><dd>
447  <table class="params">
448    <tr><td class="paramname">item[borrow]</td><td>a string </td></tr>
449  </table>
450  </dd>
451</dl>
452<dl class="section return"><dt>Returns</dt><dd>Is the string indefinite? </dd></dl>
453
454<p>Definition at line <a class="el" href="strings_8c_source.html#l00130">130</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
455
456</div>
457</div>
458<a id="aa0c17825f920ebf122bd7b9abede919f"></a>
459<h2 class="memtitle"><span class="permalink"><a href="#aa0c17825f920ebf122bd7b9abede919f">&sect;&nbsp;</a></span>cbor_string_length()</h2>
460
461<div class="memitem">
462<div class="memproto">
463      <table class="memname">
464        <tr>
465          <td class="memname">size_t cbor_string_length </td>
466          <td>(</td>
467          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
468          <td class="paramname"><em>item</em></td><td>)</td>
469          <td></td>
470        </tr>
471      </table>
472</div><div class="memdoc">
473
474<p>Returns the length of the underlying string. </p>
475<p>For definite strings only</p>
476<dl class="params"><dt>Parameters</dt><dd>
477  <table class="params">
478    <tr><td class="paramname">item[borrow]</td><td>a definite string </td></tr>
479  </table>
480  </dd>
481</dl>
482<dl class="section return"><dt>Returns</dt><dd>length of the string. Zero if no chunk has been attached yet </dd></dl>
483
484<p>Definition at line <a class="el" href="strings_8c_source.html#l00106">106</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
485
486</div>
487</div>
488<a id="a5e9292c04df380f2c775fe599511a7ab"></a>
489<h2 class="memtitle"><span class="permalink"><a href="#a5e9292c04df380f2c775fe599511a7ab">&sect;&nbsp;</a></span>cbor_string_set_handle()</h2>
490
491<div class="memitem">
492<div class="memproto">
493      <table class="memname">
494        <tr>
495          <td class="memname">void cbor_string_set_handle </td>
496          <td>(</td>
497          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
498          <td class="paramname"><em>item</em>, </td>
499        </tr>
500        <tr>
501          <td class="paramkey"></td>
502          <td></td>
503          <td class="paramtype"><a class="el" href="data_8h.html#aabb40e458ece40477e134a69c76693e8">cbor_mutable_data</a> <a class="el" href="common_8h.html#a9ac79315ed2dcf2c9587e8e3a9a6bc97">CBOR_RESTRICT_POINTER</a>&#160;</td>
504          <td class="paramname"><em>data</em>, </td>
505        </tr>
506        <tr>
507          <td class="paramkey"></td>
508          <td></td>
509          <td class="paramtype">size_t&#160;</td>
510          <td class="paramname"><em>length</em>&#160;</td>
511        </tr>
512        <tr>
513          <td></td>
514          <td>)</td>
515          <td></td><td></td>
516        </tr>
517      </table>
518</div><div class="memdoc">
519
520<p>Set the handle to the underlying string. </p>
521<pre class="fragment">embed:rst:leading-asterisk
522* .. warning:: Using a pointer to a stack allocated constant is a common mistake. Lifetime of the string will expire when it goes out of scope and the CBOR item will be left inconsistent.
523* </pre><dl class="params"><dt>Parameters</dt><dd>
524  <table class="params">
525    <tr><td class="paramname">item[borrow]</td><td>A definite string </td></tr>
526    <tr><td class="paramname">data</td><td>The memory block. The caller gives up the ownership of the block. libcbor will deallocate it when appropriate using its free function </td></tr>
527    <tr><td class="paramname">length</td><td>Length of the data block </td></tr>
528  </table>
529  </dd>
530</dl>
531
532<p>Definition at line <a class="el" href="strings_8c_source.html#l00059">59</a> of file <a class="el" href="strings_8c_source.html">strings.c</a>.</p>
533
534</div>
535</div>
536</div><!-- contents -->
537<!-- start footer part -->
538<hr class="footer"/><address class="footer"><small>
539Generated on Mon Feb 6 2017 00:26:19 for libcbor by &#160;<a href="http://www.doxygen.org/index.html">
540<img class="footer" src="doxygen.png" alt="doxygen"/>
541</a> 1.8.12
542</small></address>
543</body>
544</html>
545