xref: /netbsd-src/external/mit/libcbor/dist/docs/doxygen/strings_8h.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.h 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.h File Reference</div>  </div>
72</div><!--header-->
73<div class="contents">
74<div class="textblock"><code>#include &quot;<a class="el" href="common_8h_source.html">cbor/common.h</a>&quot;</code><br />
75</div>
76<p><a href="strings_8h_source.html">Go to the source code of this file.</a></p>
77<table class="memberdecls">
78<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
79Functions</h2></td></tr>
80<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_8h.html#aa0c17825f920ebf122bd7b9abede919f">cbor_string_length</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
81<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>
82<tr class="separator:aa0c17825f920ebf122bd7b9abede919f"><td class="memSeparator" colspan="2">&#160;</td></tr>
83<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_8h.html#a90c1cf7781f7ef1f3549f497abd259ef">cbor_string_codepoint_count</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
84<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>
85<tr class="separator:a90c1cf7781f7ef1f3549f497abd259ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
86<tr class="memitem:aa2778891e70dec4cd59c9a969294d4aa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8h.html#aa2778891e70dec4cd59c9a969294d4aa">cbor_string_is_definite</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
87<tr class="memdesc:aa2778891e70dec4cd59c9a969294d4aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the string definite?  <a href="#aa2778891e70dec4cd59c9a969294d4aa">More...</a><br /></td></tr>
88<tr class="separator:aa2778891e70dec4cd59c9a969294d4aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
89<tr class="memitem:aa1a92438a04ae77beea9a17910805530"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8h.html#aa1a92438a04ae77beea9a17910805530">cbor_string_is_indefinite</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
90<tr class="memdesc:aa1a92438a04ae77beea9a17910805530"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the string indefinite?  <a href="#aa1a92438a04ae77beea9a17910805530">More...</a><br /></td></tr>
91<tr class="separator:aa1a92438a04ae77beea9a17910805530"><td class="memSeparator" colspan="2">&#160;</td></tr>
92<tr class="memitem:af12871b50ba25f756fa1bfacd1fca12a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="data_8h.html#aabb40e458ece40477e134a69c76693e8">cbor_mutable_data</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8h.html#af12871b50ba25f756fa1bfacd1fca12a">cbor_string_handle</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
93<tr class="memdesc:af12871b50ba25f756fa1bfacd1fca12a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the handle to the underlying string.  <a href="#af12871b50ba25f756fa1bfacd1fca12a">More...</a><br /></td></tr>
94<tr class="separator:af12871b50ba25f756fa1bfacd1fca12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
95<tr class="memitem:a5e9292c04df380f2c775fe599511a7ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8h.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>
96<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>
97<tr class="separator:a5e9292c04df380f2c775fe599511a7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
98<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_8h.html#a81d1160eed81b2a29b6c5e9ff6b9e02a">cbor_string_chunks_handle</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
99<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>
100<tr class="separator:a81d1160eed81b2a29b6c5e9ff6b9e02a"><td class="memSeparator" colspan="2">&#160;</td></tr>
101<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_8h.html#ad8062db21711a51ae520cc1e4f5fe5ab">cbor_string_chunk_count</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
102<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>
103<tr class="separator:ad8062db21711a51ae520cc1e4f5fe5ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
104<tr class="memitem:a634462c7237298a196413cd62d7d1877"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strings_8h.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>
105<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>
106<tr class="separator:a634462c7237298a196413cd62d7d1877"><td class="memSeparator" colspan="2">&#160;</td></tr>
107<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_8h.html#a6e2516983e412b9d22fd1fccbeded632">cbor_new_definite_string</a> ()</td></tr>
108<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>
109<tr class="separator:a6e2516983e412b9d22fd1fccbeded632"><td class="memSeparator" colspan="2">&#160;</td></tr>
110<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_8h.html#a226f91c7bfd6be9b0a52cdc6f0b17741">cbor_new_indefinite_string</a> ()</td></tr>
111<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>
112<tr class="separator:a226f91c7bfd6be9b0a52cdc6f0b17741"><td class="memSeparator" colspan="2">&#160;</td></tr>
113<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_8h.html#a61a9388aca4fc7ee5355eb92a6d56536">cbor_build_string</a> (const char *val)</td></tr>
114<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>
115<tr class="separator:a61a9388aca4fc7ee5355eb92a6d56536"><td class="memSeparator" colspan="2">&#160;</td></tr>
116<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_8h.html#a26f8c53bb33641408921c388bf539b0c">cbor_build_stringn</a> (const char *val, size_t length)</td></tr>
117<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>
118<tr class="separator:a26f8c53bb33641408921c388bf539b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
119</table>
120<h2 class="groupheader">Function Documentation</h2>
121<a id="a61a9388aca4fc7ee5355eb92a6d56536"></a>
122<h2 class="memtitle"><span class="permalink"><a href="#a61a9388aca4fc7ee5355eb92a6d56536">&sect;&nbsp;</a></span>cbor_build_string()</h2>
123
124<div class="memitem">
125<div class="memproto">
126      <table class="memname">
127        <tr>
128          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_build_string </td>
129          <td>(</td>
130          <td class="paramtype">const char *&#160;</td>
131          <td class="paramname"><em>val</em></td><td>)</td>
132          <td></td>
133        </tr>
134      </table>
135</div><div class="memdoc">
136
137<p>Creates a new string and initializes it. </p>
138<p>The <code>val</code> will be copied to a newly allocated block</p>
139<dl class="params"><dt>Parameters</dt><dd>
140  <table class="params">
141    <tr><td class="paramname">val</td><td>A null-terminated UTF-8 string </td></tr>
142  </table>
143  </dd>
144</dl>
145<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>
146
147<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>
148
149</div>
150</div>
151<a id="a26f8c53bb33641408921c388bf539b0c"></a>
152<h2 class="memtitle"><span class="permalink"><a href="#a26f8c53bb33641408921c388bf539b0c">&sect;&nbsp;</a></span>cbor_build_stringn()</h2>
153
154<div class="memitem">
155<div class="memproto">
156      <table class="memname">
157        <tr>
158          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_build_stringn </td>
159          <td>(</td>
160          <td class="paramtype">const char *&#160;</td>
161          <td class="paramname"><em>val</em>, </td>
162        </tr>
163        <tr>
164          <td class="paramkey"></td>
165          <td></td>
166          <td class="paramtype">size_t&#160;</td>
167          <td class="paramname"><em>length</em>&#160;</td>
168        </tr>
169        <tr>
170          <td></td>
171          <td>)</td>
172          <td></td><td></td>
173        </tr>
174      </table>
175</div><div class="memdoc">
176
177<p>Creates a new string and initializes it. </p>
178<p>The <code>handle</code> will be copied to a newly allocated block</p>
179<dl class="params"><dt>Parameters</dt><dd>
180  <table class="params">
181    <tr><td class="paramname">val</td><td>A UTF-8 string, at least <code>length</code> long (excluding the null byte) </td></tr>
182  </table>
183  </dd>
184</dl>
185<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>
186
187<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>
188
189</div>
190</div>
191<a id="a6e2516983e412b9d22fd1fccbeded632"></a>
192<h2 class="memtitle"><span class="permalink"><a href="#a6e2516983e412b9d22fd1fccbeded632">&sect;&nbsp;</a></span>cbor_new_definite_string()</h2>
193
194<div class="memitem">
195<div class="memproto">
196      <table class="memname">
197        <tr>
198          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_new_definite_string </td>
199          <td>(</td>
200          <td class="paramname"></td><td>)</td>
201          <td></td>
202        </tr>
203      </table>
204</div><div class="memdoc">
205
206<p>Creates a new definite string. </p>
207<p>The handle is initialized to <code>NULL</code> and length to 0</p>
208<dl class="section return"><dt>Returns</dt><dd><b>new</b> definite string. <code>NULL</code> on malloc failure. </dd></dl>
209
210<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>
211
212</div>
213</div>
214<a id="a226f91c7bfd6be9b0a52cdc6f0b17741"></a>
215<h2 class="memtitle"><span class="permalink"><a href="#a226f91c7bfd6be9b0a52cdc6f0b17741">&sect;&nbsp;</a></span>cbor_new_indefinite_string()</h2>
216
217<div class="memitem">
218<div class="memproto">
219      <table class="memname">
220        <tr>
221          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_new_indefinite_string </td>
222          <td>(</td>
223          <td class="paramname"></td><td>)</td>
224          <td></td>
225        </tr>
226      </table>
227</div><div class="memdoc">
228
229<p>Creates a new indefinite string. </p>
230<p>The chunks array is initialized to <code>NULL</code> and chunkcount to 0</p>
231<dl class="section return"><dt>Returns</dt><dd><b>new</b> indefinite string. <code>NULL</code> on malloc failure. </dd></dl>
232
233<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>
234
235</div>
236</div>
237<a id="a634462c7237298a196413cd62d7d1877"></a>
238<h2 class="memtitle"><span class="permalink"><a href="#a634462c7237298a196413cd62d7d1877">&sect;&nbsp;</a></span>cbor_string_add_chunk()</h2>
239
240<div class="memitem">
241<div class="memproto">
242      <table class="memname">
243        <tr>
244          <td class="memname">bool cbor_string_add_chunk </td>
245          <td>(</td>
246          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
247          <td class="paramname"><em>item</em>, </td>
248        </tr>
249        <tr>
250          <td class="paramkey"></td>
251          <td></td>
252          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
253          <td class="paramname"><em>chunk</em>&#160;</td>
254        </tr>
255        <tr>
256          <td></td>
257          <td>)</td>
258          <td></td><td></td>
259        </tr>
260      </table>
261</div><div class="memdoc">
262
263<p>Appends a chunk to the string. </p>
264<p>Indefinite strings only.</p>
265<p>May realloc the chunk storage.</p>
266<dl class="params"><dt>Parameters</dt><dd>
267  <table class="params">
268    <tr><td class="paramname">item[borrow]</td><td>An indefinite string </td></tr>
269    <tr><td class="paramname">item[incref]</td><td>A definite string </td></tr>
270  </table>
271  </dd>
272</dl>
273<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>
274
275<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>
276
277</div>
278</div>
279<a id="ad8062db21711a51ae520cc1e4f5fe5ab"></a>
280<h2 class="memtitle"><span class="permalink"><a href="#ad8062db21711a51ae520cc1e4f5fe5ab">&sect;&nbsp;</a></span>cbor_string_chunk_count()</h2>
281
282<div class="memitem">
283<div class="memproto">
284      <table class="memname">
285        <tr>
286          <td class="memname">size_t cbor_string_chunk_count </td>
287          <td>(</td>
288          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
289          <td class="paramname"><em>item</em></td><td>)</td>
290          <td></td>
291        </tr>
292      </table>
293</div><div class="memdoc">
294
295<p>Get the number of chunks this string consist of. </p>
296<dl class="params"><dt>Parameters</dt><dd>
297  <table class="params">
298    <tr><td class="paramname">item[borrow]</td><td>A indefinite string </td></tr>
299  </table>
300  </dd>
301</dl>
302<dl class="section return"><dt>Returns</dt><dd>The chunk count. 0 for freshly created items. </dd></dl>
303
304<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>
305
306</div>
307</div>
308<a id="a81d1160eed81b2a29b6c5e9ff6b9e02a"></a>
309<h2 class="memtitle"><span class="permalink"><a href="#a81d1160eed81b2a29b6c5e9ff6b9e02a">&sect;&nbsp;</a></span>cbor_string_chunks_handle()</h2>
310
311<div class="memitem">
312<div class="memproto">
313      <table class="memname">
314        <tr>
315          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>** cbor_string_chunks_handle </td>
316          <td>(</td>
317          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
318          <td class="paramname"><em>item</em></td><td>)</td>
319          <td></td>
320        </tr>
321      </table>
322</div><div class="memdoc">
323
324<p>Get the handle to the array of chunks. </p>
325<p>Manipulations with the memory block (e.g. sorting it) are allowed, but the validity and the number of chunks must be retained.</p>
326<dl class="params"><dt>Parameters</dt><dd>
327  <table class="params">
328    <tr><td class="paramname">item[borrow]</td><td>A indefinite string </td></tr>
329  </table>
330  </dd>
331</dl>
332<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>
333
334<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>
335
336</div>
337</div>
338<a id="a90c1cf7781f7ef1f3549f497abd259ef"></a>
339<h2 class="memtitle"><span class="permalink"><a href="#a90c1cf7781f7ef1f3549f497abd259ef">&sect;&nbsp;</a></span>cbor_string_codepoint_count()</h2>
340
341<div class="memitem">
342<div class="memproto">
343      <table class="memname">
344        <tr>
345          <td class="memname">size_t cbor_string_codepoint_count </td>
346          <td>(</td>
347          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
348          <td class="paramname"><em>item</em></td><td>)</td>
349          <td></td>
350        </tr>
351      </table>
352</div><div class="memdoc">
353
354<p>The number of codepoints in this string. </p>
355<p>Might differ from length if there are multibyte ones</p>
356<dl class="params"><dt>Parameters</dt><dd>
357  <table class="params">
358    <tr><td class="paramname">item[borrow]</td><td>A string </td></tr>
359  </table>
360  </dd>
361</dl>
362<dl class="section return"><dt>Returns</dt><dd>The number of codepoints in this string </dd></dl>
363
364<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>
365
366</div>
367</div>
368<a id="af12871b50ba25f756fa1bfacd1fca12a"></a>
369<h2 class="memtitle"><span class="permalink"><a href="#af12871b50ba25f756fa1bfacd1fca12a">&sect;&nbsp;</a></span>cbor_string_handle()</h2>
370
371<div class="memitem">
372<div class="memproto">
373      <table class="memname">
374        <tr>
375          <td class="memname"><a class="el" href="data_8h.html#aabb40e458ece40477e134a69c76693e8">cbor_mutable_data</a> cbor_string_handle </td>
376          <td>(</td>
377          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
378          <td class="paramname"><em>item</em></td><td>)</td>
379          <td></td>
380        </tr>
381      </table>
382</div><div class="memdoc">
383
384<p>Get the handle to the underlying string. </p>
385<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>
386<dl class="params"><dt>Parameters</dt><dd>
387  <table class="params">
388    <tr><td class="paramname">item[borrow]</td><td>A definite string </td></tr>
389  </table>
390  </dd>
391</dl>
392<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>
393
394<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>
395
396</div>
397</div>
398<a id="aa2778891e70dec4cd59c9a969294d4aa"></a>
399<h2 class="memtitle"><span class="permalink"><a href="#aa2778891e70dec4cd59c9a969294d4aa">&sect;&nbsp;</a></span>cbor_string_is_definite()</h2>
400
401<div class="memitem">
402<div class="memproto">
403      <table class="memname">
404        <tr>
405          <td class="memname">bool cbor_string_is_definite </td>
406          <td>(</td>
407          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
408          <td class="paramname"><em>item</em></td><td>)</td>
409          <td></td>
410        </tr>
411      </table>
412</div><div class="memdoc">
413
414<p>Is the string definite? </p>
415<dl class="params"><dt>Parameters</dt><dd>
416  <table class="params">
417    <tr><td class="paramname">item[borrow]</td><td>a string </td></tr>
418  </table>
419  </dd>
420</dl>
421<dl class="section return"><dt>Returns</dt><dd>Is the string definite? </dd></dl>
422
423<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>
424
425</div>
426</div>
427<a id="aa1a92438a04ae77beea9a17910805530"></a>
428<h2 class="memtitle"><span class="permalink"><a href="#aa1a92438a04ae77beea9a17910805530">&sect;&nbsp;</a></span>cbor_string_is_indefinite()</h2>
429
430<div class="memitem">
431<div class="memproto">
432      <table class="memname">
433        <tr>
434          <td class="memname">bool cbor_string_is_indefinite </td>
435          <td>(</td>
436          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
437          <td class="paramname"><em>item</em></td><td>)</td>
438          <td></td>
439        </tr>
440      </table>
441</div><div class="memdoc">
442
443<p>Is the string indefinite? </p>
444<dl class="params"><dt>Parameters</dt><dd>
445  <table class="params">
446    <tr><td class="paramname">item[borrow]</td><td>a string </td></tr>
447  </table>
448  </dd>
449</dl>
450<dl class="section return"><dt>Returns</dt><dd>Is the string indefinite? </dd></dl>
451
452<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>
453
454</div>
455</div>
456<a id="aa0c17825f920ebf122bd7b9abede919f"></a>
457<h2 class="memtitle"><span class="permalink"><a href="#aa0c17825f920ebf122bd7b9abede919f">&sect;&nbsp;</a></span>cbor_string_length()</h2>
458
459<div class="memitem">
460<div class="memproto">
461      <table class="memname">
462        <tr>
463          <td class="memname">size_t cbor_string_length </td>
464          <td>(</td>
465          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
466          <td class="paramname"><em>item</em></td><td>)</td>
467          <td></td>
468        </tr>
469      </table>
470</div><div class="memdoc">
471
472<p>Returns the length of the underlying string. </p>
473<p>For definite strings only</p>
474<dl class="params"><dt>Parameters</dt><dd>
475  <table class="params">
476    <tr><td class="paramname">item[borrow]</td><td>a definite string </td></tr>
477  </table>
478  </dd>
479</dl>
480<dl class="section return"><dt>Returns</dt><dd>length of the string. Zero if no chunk has been attached yet </dd></dl>
481
482<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>
483
484</div>
485</div>
486<a id="a5e9292c04df380f2c775fe599511a7ab"></a>
487<h2 class="memtitle"><span class="permalink"><a href="#a5e9292c04df380f2c775fe599511a7ab">&sect;&nbsp;</a></span>cbor_string_set_handle()</h2>
488
489<div class="memitem">
490<div class="memproto">
491      <table class="memname">
492        <tr>
493          <td class="memname">void cbor_string_set_handle </td>
494          <td>(</td>
495          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
496          <td class="paramname"><em>item</em>, </td>
497        </tr>
498        <tr>
499          <td class="paramkey"></td>
500          <td></td>
501          <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>
502          <td class="paramname"><em>data</em>, </td>
503        </tr>
504        <tr>
505          <td class="paramkey"></td>
506          <td></td>
507          <td class="paramtype">size_t&#160;</td>
508          <td class="paramname"><em>length</em>&#160;</td>
509        </tr>
510        <tr>
511          <td></td>
512          <td>)</td>
513          <td></td><td></td>
514        </tr>
515      </table>
516</div><div class="memdoc">
517
518<p>Set the handle to the underlying string. </p>
519<pre class="fragment">embed:rst:leading-asterisk
520* .. 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.
521* </pre><dl class="params"><dt>Parameters</dt><dd>
522  <table class="params">
523    <tr><td class="paramname">item[borrow]</td><td>A definite string </td></tr>
524    <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>
525    <tr><td class="paramname">length</td><td>Length of the data block </td></tr>
526  </table>
527  </dd>
528</dl>
529
530<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>
531
532</div>
533</div>
534</div><!-- contents -->
535<!-- start footer part -->
536<hr class="footer"/><address class="footer"><small>
537Generated on Mon Feb 6 2017 00:26:19 for libcbor by &#160;<a href="http://www.doxygen.org/index.html">
538<img class="footer" src="doxygen.png" alt="doxygen"/>
539</a> 1.8.12
540</small></address>
541</body>
542</html>
543