xref: /netbsd-src/external/mit/libcbor/dist/docs/doxygen/bytestrings_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/bytestrings.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">bytestrings.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="bytestrings_8h_source.html">bytestrings.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="bytestrings_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:a7c15a63fdc3830707eac0877a261f1cd"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bytestrings_8c.html#a7c15a63fdc3830707eac0877a261f1cd">cbor_bytestring_length</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
83<tr class="memdesc:a7c15a63fdc3830707eac0877a261f1cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the binary data.  <a href="#a7c15a63fdc3830707eac0877a261f1cd">More...</a><br /></td></tr>
84<tr class="separator:a7c15a63fdc3830707eac0877a261f1cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
85<tr class="memitem:a2c9d6feda3d0f87782168fa817f83be6"><td class="memItemLeft" align="right" valign="top">unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bytestrings_8c.html#a2c9d6feda3d0f87782168fa817f83be6">cbor_bytestring_handle</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
86<tr class="memdesc:a2c9d6feda3d0f87782168fa817f83be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the handle to the binary data.  <a href="#a2c9d6feda3d0f87782168fa817f83be6">More...</a><br /></td></tr>
87<tr class="separator:a2c9d6feda3d0f87782168fa817f83be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
88<tr class="memitem:a368222dbbcea25e06469524e26587e2a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bytestrings_8c.html#a368222dbbcea25e06469524e26587e2a">cbor_bytestring_is_definite</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
89<tr class="memdesc:a368222dbbcea25e06469524e26587e2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the byte string definite?  <a href="#a368222dbbcea25e06469524e26587e2a">More...</a><br /></td></tr>
90<tr class="separator:a368222dbbcea25e06469524e26587e2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
91<tr class="memitem:a3a6c450f105bb18b6b56d20f0de4786a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bytestrings_8c.html#a3a6c450f105bb18b6b56d20f0de4786a">cbor_bytestring_is_indefinite</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
92<tr class="memdesc:a3a6c450f105bb18b6b56d20f0de4786a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the byte string indefinite?  <a href="#a3a6c450f105bb18b6b56d20f0de4786a">More...</a><br /></td></tr>
93<tr class="separator:a3a6c450f105bb18b6b56d20f0de4786a"><td class="memSeparator" colspan="2">&#160;</td></tr>
94<tr class="memitem:a86fc646f4520b90c85a704d27b46e69e"><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="bytestrings_8c.html#a86fc646f4520b90c85a704d27b46e69e">cbor_new_definite_bytestring</a> ()</td></tr>
95<tr class="memdesc:a86fc646f4520b90c85a704d27b46e69e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new definite byte string.  <a href="#a86fc646f4520b90c85a704d27b46e69e">More...</a><br /></td></tr>
96<tr class="separator:a86fc646f4520b90c85a704d27b46e69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
97<tr class="memitem:a6de9d6387e856c33d2ef8e8e9fdac0ac"><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="bytestrings_8c.html#a6de9d6387e856c33d2ef8e8e9fdac0ac">cbor_new_indefinite_bytestring</a> ()</td></tr>
98<tr class="memdesc:a6de9d6387e856c33d2ef8e8e9fdac0ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new indefinite byte string.  <a href="#a6de9d6387e856c33d2ef8e8e9fdac0ac">More...</a><br /></td></tr>
99<tr class="separator:a6de9d6387e856c33d2ef8e8e9fdac0ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
100<tr class="memitem:ab76bd5ff62831739cd9a8d7ec2768c1a"><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="bytestrings_8c.html#ab76bd5ff62831739cd9a8d7ec2768c1a">cbor_build_bytestring</a> (<a class="el" href="data_8h.html#a121c5944682215e742475f12f07c0a72">cbor_data</a> handle, size_t length)</td></tr>
101<tr class="memdesc:ab76bd5ff62831739cd9a8d7ec2768c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new byte string and initializes it.  <a href="#ab76bd5ff62831739cd9a8d7ec2768c1a">More...</a><br /></td></tr>
102<tr class="separator:ab76bd5ff62831739cd9a8d7ec2768c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
103<tr class="memitem:a513fd06374cb4faa9e909c85e4248199"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bytestrings_8c.html#a513fd06374cb4faa9e909c85e4248199">cbor_bytestring_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>
104<tr class="memdesc:a513fd06374cb4faa9e909c85e4248199"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the handle to the binary data.  <a href="#a513fd06374cb4faa9e909c85e4248199">More...</a><br /></td></tr>
105<tr class="separator:a513fd06374cb4faa9e909c85e4248199"><td class="memSeparator" colspan="2">&#160;</td></tr>
106<tr class="memitem:a8ab6255d6f8f209149bdf794dffed849"><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="bytestrings_8c.html#a8ab6255d6f8f209149bdf794dffed849">cbor_bytestring_chunks_handle</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
107<tr class="memdesc:a8ab6255d6f8f209149bdf794dffed849"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the handle to the array of chunks.  <a href="#a8ab6255d6f8f209149bdf794dffed849">More...</a><br /></td></tr>
108<tr class="separator:a8ab6255d6f8f209149bdf794dffed849"><td class="memSeparator" colspan="2">&#160;</td></tr>
109<tr class="memitem:ad02102832d452fd5a5cfa96272b1095d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bytestrings_8c.html#ad02102832d452fd5a5cfa96272b1095d">cbor_bytestring_chunk_count</a> (const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *item)</td></tr>
110<tr class="memdesc:ad02102832d452fd5a5cfa96272b1095d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of chunks this string consist of.  <a href="#ad02102832d452fd5a5cfa96272b1095d">More...</a><br /></td></tr>
111<tr class="separator:ad02102832d452fd5a5cfa96272b1095d"><td class="memSeparator" colspan="2">&#160;</td></tr>
112<tr class="memitem:a5dc8c27d6e7acfdd05fdc15c01e25b47"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bytestrings_8c.html#a5dc8c27d6e7acfdd05fdc15c01e25b47">cbor_bytestring_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>
113<tr class="memdesc:a5dc8c27d6e7acfdd05fdc15c01e25b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a chunk to the bytestring.  <a href="#a5dc8c27d6e7acfdd05fdc15c01e25b47">More...</a><br /></td></tr>
114<tr class="separator:a5dc8c27d6e7acfdd05fdc15c01e25b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
115</table>
116<h2 class="groupheader">Function Documentation</h2>
117<a id="ab76bd5ff62831739cd9a8d7ec2768c1a"></a>
118<h2 class="memtitle"><span class="permalink"><a href="#ab76bd5ff62831739cd9a8d7ec2768c1a">&sect;&nbsp;</a></span>cbor_build_bytestring()</h2>
119
120<div class="memitem">
121<div class="memproto">
122      <table class="memname">
123        <tr>
124          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_build_bytestring </td>
125          <td>(</td>
126          <td class="paramtype"><a class="el" href="data_8h.html#a121c5944682215e742475f12f07c0a72">cbor_data</a>&#160;</td>
127          <td class="paramname"><em>handle</em>, </td>
128        </tr>
129        <tr>
130          <td class="paramkey"></td>
131          <td></td>
132          <td class="paramtype">size_t&#160;</td>
133          <td class="paramname"><em>length</em>&#160;</td>
134        </tr>
135        <tr>
136          <td></td>
137          <td>)</td>
138          <td></td><td></td>
139        </tr>
140      </table>
141</div><div class="memdoc">
142
143<p>Creates a new byte string and initializes it. </p>
144<p>The <code>handle</code> will be copied to a newly allocated block</p>
145<dl class="params"><dt>Parameters</dt><dd>
146  <table class="params">
147    <tr><td class="paramname">handle</td><td>Block of binary data </td></tr>
148    <tr><td class="paramname">length</td><td>Length of <code>data</code> </td></tr>
149  </table>
150  </dd>
151</dl>
152<dl class="section return"><dt>Returns</dt><dd>A <b>new</b> byte string with content <code>handle</code>. <code>NULL</code> on malloc failure. </dd></dl>
153
154<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00063">63</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
155
156</div>
157</div>
158<a id="a5dc8c27d6e7acfdd05fdc15c01e25b47"></a>
159<h2 class="memtitle"><span class="permalink"><a href="#a5dc8c27d6e7acfdd05fdc15c01e25b47">&sect;&nbsp;</a></span>cbor_bytestring_add_chunk()</h2>
160
161<div class="memitem">
162<div class="memproto">
163      <table class="memname">
164        <tr>
165          <td class="memname">bool cbor_bytestring_add_chunk </td>
166          <td>(</td>
167          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
168          <td class="paramname"><em>item</em>, </td>
169        </tr>
170        <tr>
171          <td class="paramkey"></td>
172          <td></td>
173          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
174          <td class="paramname"><em>chunk</em>&#160;</td>
175        </tr>
176        <tr>
177          <td></td>
178          <td>)</td>
179          <td></td><td></td>
180        </tr>
181      </table>
182</div><div class="memdoc">
183
184<p>Appends a chunk to the bytestring. </p>
185<p>Indefinite byte strings only.</p>
186<p>May realloc the chunk storage.</p>
187<dl class="params"><dt>Parameters</dt><dd>
188  <table class="params">
189    <tr><td class="paramname">item[borrow]</td><td>An indefinite byte string </td></tr>
190    <tr><td class="paramname">item[incref]</td><td>A definite byte string </td></tr>
191  </table>
192  </dd>
193</dl>
194<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>
195
196<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00095">95</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
197
198</div>
199</div>
200<a id="ad02102832d452fd5a5cfa96272b1095d"></a>
201<h2 class="memtitle"><span class="permalink"><a href="#ad02102832d452fd5a5cfa96272b1095d">&sect;&nbsp;</a></span>cbor_bytestring_chunk_count()</h2>
202
203<div class="memitem">
204<div class="memproto">
205      <table class="memname">
206        <tr>
207          <td class="memname">size_t cbor_bytestring_chunk_count </td>
208          <td>(</td>
209          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
210          <td class="paramname"><em>item</em></td><td>)</td>
211          <td></td>
212        </tr>
213      </table>
214</div><div class="memdoc">
215
216<p>Get the number of chunks this string consist of. </p>
217<dl class="params"><dt>Parameters</dt><dd>
218  <table class="params">
219    <tr><td class="paramname">item[borrow]</td><td>A indefinite bytestring </td></tr>
220  </table>
221  </dd>
222</dl>
223<dl class="section return"><dt>Returns</dt><dd>The chunk count. 0 for freshly created items. </dd></dl>
224
225<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00087">87</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
226
227</div>
228</div>
229<a id="a8ab6255d6f8f209149bdf794dffed849"></a>
230<h2 class="memtitle"><span class="permalink"><a href="#a8ab6255d6f8f209149bdf794dffed849">&sect;&nbsp;</a></span>cbor_bytestring_chunks_handle()</h2>
231
232<div class="memitem">
233<div class="memproto">
234      <table class="memname">
235        <tr>
236          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>** cbor_bytestring_chunks_handle </td>
237          <td>(</td>
238          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
239          <td class="paramname"><em>item</em></td><td>)</td>
240          <td></td>
241        </tr>
242      </table>
243</div><div class="memdoc">
244
245<p>Get the handle to the array of chunks. </p>
246<p>Manipulations with the memory block (e.g. sorting it) are allowed, but the validity and the number of chunks must be retained.</p>
247<dl class="params"><dt>Parameters</dt><dd>
248  <table class="params">
249    <tr><td class="paramname">item[borrow]</td><td>A indefinite byte string </td></tr>
250  </table>
251  </dd>
252</dl>
253<dl class="section return"><dt>Returns</dt><dd>array of <a class="el" href="bytestrings_8h.html#ad02102832d452fd5a5cfa96272b1095d" title="Get the number of chunks this string consist of. ">cbor_bytestring_chunk_count</a> definite bytestrings </dd></dl>
254
255<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00080">80</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
256
257</div>
258</div>
259<a id="a2c9d6feda3d0f87782168fa817f83be6"></a>
260<h2 class="memtitle"><span class="permalink"><a href="#a2c9d6feda3d0f87782168fa817f83be6">&sect;&nbsp;</a></span>cbor_bytestring_handle()</h2>
261
262<div class="memitem">
263<div class="memproto">
264      <table class="memname">
265        <tr>
266          <td class="memname">unsigned char* cbor_bytestring_handle </td>
267          <td>(</td>
268          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
269          <td class="paramname"><em>item</em></td><td>)</td>
270          <td></td>
271        </tr>
272      </table>
273</div><div class="memdoc">
274
275<p>Get the handle to the binary data. </p>
276<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>
277<dl class="params"><dt>Parameters</dt><dd>
278  <table class="params">
279    <tr><td class="paramname">item[borrow]</td><td>A definite byte string </td></tr>
280  </table>
281  </dd>
282</dl>
283<dl class="section return"><dt>Returns</dt><dd>The address of the binary data. <code>NULL</code> if no data have been assigned yet. </dd></dl>
284
285<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00018">18</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
286
287</div>
288</div>
289<a id="a368222dbbcea25e06469524e26587e2a"></a>
290<h2 class="memtitle"><span class="permalink"><a href="#a368222dbbcea25e06469524e26587e2a">&sect;&nbsp;</a></span>cbor_bytestring_is_definite()</h2>
291
292<div class="memitem">
293<div class="memproto">
294      <table class="memname">
295        <tr>
296          <td class="memname">bool cbor_bytestring_is_definite </td>
297          <td>(</td>
298          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
299          <td class="paramname"><em>item</em></td><td>)</td>
300          <td></td>
301        </tr>
302      </table>
303</div><div class="memdoc">
304
305<p>Is the byte string definite? </p>
306<dl class="params"><dt>Parameters</dt><dd>
307  <table class="params">
308    <tr><td class="paramname">item[borrow]</td><td>a byte string </td></tr>
309  </table>
310  </dd>
311</dl>
312<dl class="section return"><dt>Returns</dt><dd>Is the byte string definite? </dd></dl>
313
314<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00024">24</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
315
316</div>
317</div>
318<a id="a3a6c450f105bb18b6b56d20f0de4786a"></a>
319<h2 class="memtitle"><span class="permalink"><a href="#a3a6c450f105bb18b6b56d20f0de4786a">&sect;&nbsp;</a></span>cbor_bytestring_is_indefinite()</h2>
320
321<div class="memitem">
322<div class="memproto">
323      <table class="memname">
324        <tr>
325          <td class="memname">bool cbor_bytestring_is_indefinite </td>
326          <td>(</td>
327          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
328          <td class="paramname"><em>item</em></td><td>)</td>
329          <td></td>
330        </tr>
331      </table>
332</div><div class="memdoc">
333
334<p>Is the byte string indefinite? </p>
335<dl class="params"><dt>Parameters</dt><dd>
336  <table class="params">
337    <tr><td class="paramname">item[borrow]</td><td>a byte string </td></tr>
338  </table>
339  </dd>
340</dl>
341<dl class="section return"><dt>Returns</dt><dd>Is the byte string indefinite? </dd></dl>
342
343<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00030">30</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
344
345</div>
346</div>
347<a id="a7c15a63fdc3830707eac0877a261f1cd"></a>
348<h2 class="memtitle"><span class="permalink"><a href="#a7c15a63fdc3830707eac0877a261f1cd">&sect;&nbsp;</a></span>cbor_bytestring_length()</h2>
349
350<div class="memitem">
351<div class="memproto">
352      <table class="memname">
353        <tr>
354          <td class="memname">size_t cbor_bytestring_length </td>
355          <td>(</td>
356          <td class="paramtype">const <a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
357          <td class="paramname"><em>item</em></td><td>)</td>
358          <td></td>
359        </tr>
360      </table>
361</div><div class="memdoc">
362
363<p>Returns the length of the binary data. </p>
364<p>For definite byte strings only</p>
365<dl class="params"><dt>Parameters</dt><dd>
366  <table class="params">
367    <tr><td class="paramname">item[borrow]</td><td>a definite bytestring </td></tr>
368  </table>
369  </dd>
370</dl>
371<dl class="section return"><dt>Returns</dt><dd>length of the binary data. Zero if no chunk has been attached yet </dd></dl>
372
373<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00012">12</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
374
375</div>
376</div>
377<a id="a513fd06374cb4faa9e909c85e4248199"></a>
378<h2 class="memtitle"><span class="permalink"><a href="#a513fd06374cb4faa9e909c85e4248199">&sect;&nbsp;</a></span>cbor_bytestring_set_handle()</h2>
379
380<div class="memitem">
381<div class="memproto">
382      <table class="memname">
383        <tr>
384          <td class="memname">void cbor_bytestring_set_handle </td>
385          <td>(</td>
386          <td class="paramtype"><a class="el" href="structcbor__item__t.html">cbor_item_t</a> *&#160;</td>
387          <td class="paramname"><em>item</em>, </td>
388        </tr>
389        <tr>
390          <td class="paramkey"></td>
391          <td></td>
392          <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>
393          <td class="paramname"><em>data</em>, </td>
394        </tr>
395        <tr>
396          <td class="paramkey"></td>
397          <td></td>
398          <td class="paramtype">size_t&#160;</td>
399          <td class="paramname"><em>length</em>&#160;</td>
400        </tr>
401        <tr>
402          <td></td>
403          <td>)</td>
404          <td></td><td></td>
405        </tr>
406      </table>
407</div><div class="memdoc">
408
409<p>Set the handle to the binary data. </p>
410<dl class="params"><dt>Parameters</dt><dd>
411  <table class="params">
412    <tr><td class="paramname">item[borrow]</td><td>A definite byte string </td></tr>
413    <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>
414    <tr><td class="paramname">length</td><td>Length of the data block </td></tr>
415  </table>
416  </dd>
417</dl>
418
419<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00072">72</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
420
421</div>
422</div>
423<a id="a86fc646f4520b90c85a704d27b46e69e"></a>
424<h2 class="memtitle"><span class="permalink"><a href="#a86fc646f4520b90c85a704d27b46e69e">&sect;&nbsp;</a></span>cbor_new_definite_bytestring()</h2>
425
426<div class="memitem">
427<div class="memproto">
428      <table class="memname">
429        <tr>
430          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_new_definite_bytestring </td>
431          <td>(</td>
432          <td class="paramname"></td><td>)</td>
433          <td></td>
434        </tr>
435      </table>
436</div><div class="memdoc">
437
438<p>Creates a new definite byte string. </p>
439<p>The handle is initialized to <code>NULL</code> and length to 0</p>
440<dl class="section return"><dt>Returns</dt><dd><b>new</b> definite bytestring. <code>NULL</code> on malloc failure. </dd></dl>
441
442<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00035">35</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
443
444</div>
445</div>
446<a id="a6de9d6387e856c33d2ef8e8e9fdac0ac"></a>
447<h2 class="memtitle"><span class="permalink"><a href="#a6de9d6387e856c33d2ef8e8e9fdac0ac">&sect;&nbsp;</a></span>cbor_new_indefinite_bytestring()</h2>
448
449<div class="memitem">
450<div class="memproto">
451      <table class="memname">
452        <tr>
453          <td class="memname"><a class="el" href="structcbor__item__t.html">cbor_item_t</a>* cbor_new_indefinite_bytestring </td>
454          <td>(</td>
455          <td class="paramname"></td><td>)</td>
456          <td></td>
457        </tr>
458      </table>
459</div><div class="memdoc">
460
461<p>Creates a new indefinite byte string. </p>
462<p>The chunks array is initialized to <code>NULL</code> and chunkcount to 0</p>
463<dl class="section return"><dt>Returns</dt><dd><b>new</b> indefinite bytestring. <code>NULL</code> on malloc failure. </dd></dl>
464
465<p>Definition at line <a class="el" href="bytestrings_8c_source.html#l00046">46</a> of file <a class="el" href="bytestrings_8c_source.html">bytestrings.c</a>.</p>
466
467</div>
468</div>
469</div><!-- contents -->
470<!-- start footer part -->
471<hr class="footer"/><address class="footer"><small>
472Generated on Mon Feb 6 2017 00:26:19 for libcbor by &#160;<a href="http://www.doxygen.org/index.html">
473<img class="footer" src="doxygen.png" alt="doxygen"/>
474</a> 1.8.12
475</small></address>
476</body>
477</html>
478