summaryrefslogtreecommitdiff
path: root/man/tip/nng_msg_reserve.3.html
blob: 1b4ba74907067cf67f6fd7abbb9c1d5ad9bf0b22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
---
version: tip
layout: manpage_v2
title: nng_msg_reserve(3)
---
<h1>nng_msg_reserve(3)</h1>
<div class="sect1">
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<div class="paragraph">
<p>nng_msg_reserve - reserve storage for a message</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span><span class="tok-w"> </span><span class="tok-cpf">&lt;nng/nng.h&gt;</span>

<span class="tok-kt">int</span><span class="tok-w"> </span><span class="tok-nf">nng_msg_reserve</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-kt">size_t</span><span class="tok-w"> </span><span class="tok-n">capacity</span><span class="tok-p">);</span></code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <code>nng_msg_reserve()</code> function ensures a message has allocated enough storage
to accommodate a body of the given length.
This message attempts to avoid extra allocations,
and will reuse the existing memory when possible.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
Using this message before <a href="nng_msg_append.3.html"><code>nng_msg_append()</code></a>
will prevent additional memory allocations until the message&#8217;s length exceeds
the alotted capacity.
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Pointers to message body and header content obtained prior to this
function must not be in use, as the underlying memory used for the message
may have changed, particularly if the message capacity is increasing.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_return_values">RETURN VALUES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This function returns 0 on success, and non-zero otherwise.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<code>NNG_ENOMEM</code>
</td>
<td class="hdlist2">
<p>Insufficient free memory exists to reallocate a message.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph text-left">
<p><a href="nng_msg_capacity.3.html">nng_msg_capacity(3)</a>,
<a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
<a href="nng_msg_append.3.html">nng_msg_append(3)</a>,
<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
<a href="nng_msg_chop.3.html">nng_msg_chop(3)</a>,
<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
<a href="nng_msg_insert.3.html">nng_msg_insert(3)</a>,
<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
<a href="nng_msg_trim.3.html">nng_msg_trim(3)</a>,
<a href="nng_strerror.3.html">nng_strerror(3)</a>,
<a href="nng_msg.5.html">nng_msg(5)</a>,
<a href="nng.7.html">nng(7)</a></p>
</div>
</div>
</div>